Arhivarea si backup-ul cu verificare sub Linux prin SSH, cu salvarea sesiunii in caz de cadere a conexiunii De multe ori conexiunea prin SSH la un anumit server Linux (CentOS, Ubuntu) la distanta cade, ceea ce necesita instalarea si utilizarea aplicatiei in linie de comanda "screen". Pentru a fi siguri ca ceea ce avem in sursa, vom avea si in destinatie, vom instala si utiliza "rdiff-backup". Pasii necesari: 1. Ne vom conecta prin SSH la serverul sursa (de unde dorim sa facem backup-ul) si vom instala screen, in caz ca acesta nu este instalat: pentru Centos: yum install screen sau pentru Ubuntu: sudo apt install screen 2. Rulam screen pe hostul de unde dorim sa facem backup-ul, setind si un nume de sesiune care poate fi reutilizat in caz de cadere (repetata) a sesiunii (nume ales pentru sesiune: backup123): pentru Centos: screen -S backup123 sau pentru Ubuntu: sudo screen -S backup123 in caz ca respectiva conexiune va cadea, ne vom reconecta prin SSH, iar apoi vom rula urmatoarea comanda (ori de cite ori e nevoie) pentru a relua sesiunea in care lucram pina sa cada conexiunea: pentru Centos: screen -x backup123 sau pentru Ubuntu: sudo screen -x backup123 3. Instalam pachetul rdiff-backup pe ambele hosturi, atit la sursa, cit si la destinatie (e.g. CentOS, Ubuntu): pentru Centos: yum install rdiff-backup sau pentru Ubuntu: sudo apt install rdiff-backup 4. Cream folderele (de) unde vom face backup-ul: - pe hostul sursa (exemplu): mkdir /home/utilizator1/backup - pe hostul destinatie (exemplu): mkdir /home/utilizator2/backup 5. Cream si editam urmatorul script pe hostul sursa: ### ./arch_backup_verify.sh ### #! /bin/bash # pentru o masina virtuala, ens33 reprezinta placa de retea, # in timp ce pentru o masina fizica, aceasta este eth0; # arhiva pe hostul sursa se va crea in /home/utilizator1/backup # se va face arhiva pentru (de exemplu): /var/www # numele fisierului va avea urmatorul format (data_ora_ip.tar.gz): # 2018-08-16_00:07:26_192.168.0.121.tar.gz NOWO=$(date +"%F_%T_") IP=$(ip addr show ens33 | grep -Po 'inet \K[\d.]+') tar czvf /home/utilizator1/backup/$NOWO$IP.tar.gz /var/www rdiff-backup /home/utilizator1/backup utilizator2@192.168.0.125::/home/utilizator2/backup rdiff-backup --compare-full-at-time now /home/utilizator1/backup utilizator2@192.168.0.125::/home/utilizator2/backup 6. Rulam scriptul: - sub CentOS: ./arch_backup_verify.sh - sau sub Ubuntu: sudo ./arch_backup_verify.sh daca totul e in regula, output-ul e de forma: tar: Removing leading `/' from member names /var/www/ ... /home/utilizator1/backup/2018-08-16_00:07:26_192.168.0.121.tar.gz utilizator2@192.168.0.125's password: utilizator2@192.168.0.125's password: No changes found. Directory matches archive data.