crotchmaster
happy BSD user
Moin Forenmitglieder,
ich bin wieder dabei, mein Backup weiter zu verbessern. Die neueste Idee ist, eine Datei mit einer Prüfsumme der Backupdatei zu erstellen.
Der Hintergrund ist, dass die Downloads der Backupdateien manchmal fehlschlagen. Da die Downloads automatisch erfolgen sollen,
möchte ich sicher gehen, dass die Downloads korrekt gezogen wurden, bevor sie auf dem SFTP-Server automatisch gelöscht werden.
In dem Backup-Script mache ich folgendes:
Das funktioniert bisher richtig gut.
Jetzt möchte die Prüfsumme erstellen und da scheitere ich im Moment.
Der letzte Befehl wird zu:
Als Ausgabe erhalte ich:
Die verschlüsselte Passwortdatei wird dabei normal hochgeladen, aber die Backupdatei und die Prüfsummendatei sind leer.
Mit der Position des tee-Befehls innerhalb der Pipe habe ich erfolglos rumgespielt.
Was mache ich falsch?
ich bin wieder dabei, mein Backup weiter zu verbessern. Die neueste Idee ist, eine Datei mit einer Prüfsumme der Backupdatei zu erstellen.
Der Hintergrund ist, dass die Downloads der Backupdateien manchmal fehlschlagen. Da die Downloads automatisch erfolgen sollen,
möchte ich sicher gehen, dass die Downloads korrekt gezogen wurden, bevor sie auf dem SFTP-Server automatisch gelöscht werden.
In dem Backup-Script mache ich folgendes:
Code:
openssl rand -base64 128 > ${BASE_DIR}/${PASSWD_FILE}
openssl rsautl -encrypt -inkey ${PUBKEY} -pubin -in ${BASE_DIR}/${PASSWD_FILE} -out ${BASE_DIR}/${ENCRYPTED_PASSWD_FILE}
cat ${BASE_DIR}/${ENCRYPTED_PASSWD_FILE}|\
lftp sftp://${SFTP_USER}@${SFTP_HOST} -e "put /dev/stdin -o /users/${SFTP_USER}/${ENCRYPTED_PASSWD_FILE}"
zfs send zroot/postgresdb@${SNAPSHOT_NAME}|\
gzip -2 -c|\
openssl enc -aes-256-cbc -salt -pbkdf2 -pass file:${BASE_DIR}/${PASSWD_FILE}|\
mbuffer -m 256M -P 50 -W 30 -q|\
lftp sftp://${SFTP_USER}@${SFTP_HOST} -e "put /dev/stdin -o /users/${SFTP_USER}/${SNAPSHOT_NAME}.gz.enc"
Das funktioniert bisher richtig gut.
Jetzt möchte die Prüfsumme erstellen und da scheitere ich im Moment.
Der letzte Befehl wird zu:
Code:
zfs send zroot/postgresdb@${SNAPSHOT_NAME}|\
gzip -2 -c|\
openssl enc -aes-256-cbc -salt -pbkdf2 -pass file:${BASE_DIR}/${PASSWD_FILE}|\
mbuffer -m 256M -P 50 -W 30 -q|\
tee >$(shasum -a 256 -bqs - >${BASE_DIR}/${CHECKSUM_FILE})|\
lftp sftp://${SFTP_USER}@${SFTP_HOST} -e "put /dev/stdin -o /users/${SFTP_USER}/${SNAPSHOT_NAME}.gz.enc"
Als Ausgabe erhalte ich:
Code:
mbuffer: error: outputThread: error writing to <stdout> at offset 0x0: Broken pipe
mbuffer: warning: error during output to <stdout>: Broken pipe
Mit der Position des tee-Befehls innerhalb der Pipe habe ich erfolglos rumgespielt.
Was mache ich falsch?