Próbuję utworzyć skrypt bash, aby wykonać kopię zapasową całego systemu. To jest moja próba bashu, więc oczywiście coś pomieszałem!
#!/bin/bash
mybackupname="backup-fullsys-$(date +%Y-%m-%d).tar.gz"
logfile="backup-system.log"
echo Backup Started `date` >> ${logfile}
tar -cpzvf ${mybackupname} --exclude=/${mybackupname} --exclude=/proc --exclude=/lost+found --exclude=/sys --exclude=/mnt --exclude=/media --exclude=/dev / >> ${logfile}
ls -gh ${mybackupname} >> ${logfile}
mv -v ${mybackupname} backups/filesystem/ >> ${logfile}
echo Backup Completed `date` >> ${logfile}
sendEmail -v -f @gmail.com -s smtp.gmail.com:587 -xu user -xp pass -t mail@mail.ge -o tls=yes -u Tittle Full Backup -m Server Reports -a ${logfile}
exit
Uruchomiono go za pomocą crona.
I na mój e-mail otrzymałem to:
-rw-r--r-- 1 root 965M Jul 13 16:11 backup-fullsys-2012-07-13.tar.gz
`backup-fullsys-2012-07-13.tar.gz' -> `backups/filesystem/'
Backup Completed Fri Jul 13 16:11:14 GET 2012
Teraz zabawne jest to, że myślałem, że skrypt bash będzie działał z mojego katalogu domowego. Tak więc ścieżka, którą zawarłem w skrypcie, to kopie zapasowe / system plików /. Ten folder istnieje w katalogu / home / me / backups / filesystem /, a skrypt bash znajduje się w /home/me/bash.bash
Nie mogę znaleźć pliku tar ani dziennika! Próbowałem cd do folderu, nic.
Próbowałem zlokalizować / znaleźć.
Kiedy robię df-h, chociaż widzę, że coś zajmuje miejsce. Moja oryginalna partycja miała 2 GB, teraz jest 4 GB, więc plik gdzieś tam jest.
mv -v ${mybackupname} backups/filesystem/ 2>>${logfile}
mv -v ${mybackupname} backups/filesystem/ 2>&1 >>${logfile}
(2>&1
środki: przekierować stderr do stdout, a następnie>>${logfile}
przekierować zarówno razem mają być dołączone do pliku dziennika)mv ... >> $logfile 2>&1
Czy jest jakiś powód, dla którego decydujesz się na wdrożenie własnego mechanizmu tworzenia kopii zapasowych zamiast korzystania z czegoś takiego? Istnieje kilka ładnych narzędzi do tworzenia kopii zapasowych, które kompresują, przechowują w różnych miejscach, obsługują pełne / przyrostowe, obsługują czyszczenie starych kopii zapasowych itp.
Na przykład Duplicity ... http://duplicity.nongnu.org/
Tylko myśl ... Nigdy nie lubię wymyślać koła, chyba że jest to do celów edukacyjnych: ^)
źródło