====== Vzdálená záloha pomocí SSH a RSYNC ====== Nejprve vytvoříme pomocí SSH šifrovaný tunel mezi dvěma počítači na bázi klient/server. Přes něj můžeme přistupovat k shellu vzdáleného počítače, ale také kopírovat soubory, spouštět vzdáleně aplikace, vytvářet roury z místního počítače na vzdálený či vytvářet šifrované tunely pro vzdálený přístup k nějaké službě, která je za firewallem. Tohoto využijeme k záloze výstupu z aplikace nebo k záloze části filesystému. Pro správnou funkci tohoto skriptu musíme vytvořit systémového uživatele na vzdáleném serveru, pod kterým budeme vytvářet zálohy. Pro tohoto uživatele vygenerujeme public/private pár klíčů a public klíč umístíme do jeho domovského adresáře. #!/bin/bash COMMAND_01="/usr/bin/mysqldump -u Zaloha --password=Zaloha --opt --all-databases" COMMAND_02="/usr/bin/pg_dumpall -U postgres" SOURCE_HOST="server.domena" SOURCE_DIR="/etc" USER="zaloha" MY_DATE=`date +%Y%m%d-%H%M%S` DESTINATION_DIR="/tmp/zaloha" DESTINATION_FILE_01="$DESTINATION_DIR/$MY_DATE-mysql-export.sql" DESTINATION_FILE_02="$DESTINATION_DIR/$MY_DATE-postgres-export.sql" if [ ! -d $DESTINATION_DIR ] ; then mkdir -p $DESTINATION_DIR fi #zalohy vystupu z binarky ssh -o NumberOfPasswordPrompts=1 -o PasswordAuthentication=no -o StrictHostKeyChecking=no $USER@$SOURCE_HOST "$COMMAND_01" > $DESTINATION_FILE_01 ssh -o NumberOfPasswordPrompts=1 -o PasswordAuthentication=no -o StrictHostKeyChecking=no $USER@$SOURCE_HOST "$COMMAND_02" > $DESTINATION_FILE_02 #zaloha FS rsync -zavR -e "ssh -o NumberOfPasswordPrompts=1 -o PasswordAuthentication=no -o StrictHostKeyChecking=no" --delete $USER@$SOURCE_HOST:$SOURCE_DIR $DESTINATION_DIR