Automatyczne wykonywanie kopii - Ubuntu 12.04

Witam!

Potrzebuję raz dziennie będąc w pracy wykonywać kopię danych na zasób sieciowy. Napisałem coś takiego

sudo zip -r /media/BACKUP/KOPIA2$(`date+"%Y%m%d"`).ZIP /home/username/Dokumenty

Chcę to wrzucić do crontaba, ale mam kilka pytań: - po pierwsze jak odpalam to w terminalu to prosi mnie o podanie hasła root’a (wiadomo polecenie sudo), bez sudo nie pojawia się. Czy zadania to wykona się poprawnie?

zip I/O error: Permission denied

zip error: Could not create output file (/media/BACKUP/KOPIA2.ZIP)
  • po drugie jak poprawnie zapisać to

    /media/BACKUP/KOPIA2$(date+"%Y%m%d").ZIP

aby do nazwy pliku dodawała się aktualna data. Przy podanym zapisie pojawia się

date+%Y%m%d: command not found

Możesz także wykonywać kopie przy użyciu wbudowanego, graficznego narzędzia - domyślnie nazwane jako “Kopia zapasowa”, ale jest to nic innego jak “Déjà Dup”.

Zasadniczo nie znam się na Ubuntu, ale akurat cron powinien być podobny we wszystkich dystrybucjach. U mnie (Centos) sprawa wygląda w ten sposób:

do pliku /etc/crontab dodaje:

05 0 * * * root /etc/cron.backup/backup_d.sh

Oznacz to, że zawsze 5 min po północy uruchomi się skrypt /etc/cron.backup/backup_d.sh z uprawnieniami roota. Zasadniczo plik /etc/crontab może edytować tylko root, więc nie ma problemu. Z kolei plik /etc/cron.backup/backup_d.sh ma następującą zawartość:

#!/bin/bash

date >> /root/log/backup


t=`date -d yesterday +%A`


cd /home/

find -mtime 1 -type f > /kopia/bup/day/list.txt

tar -cjf /kopia/bup/day/$t.tar.bz2 -T /kopia/bup/day/list.txt


echo '-----------------------------------------------' >> /root/log/backup

W Twoim przypadku zawartość powinna być z grubsza następująca (pisane z palca więc zweryfikuj):

#!/bin/bash


t=date +"%Y%m%d`


cd /home/

zip /media/BACKUP/KOPIA2$t.ZIP /home/username/Dokumenty

Czy na pewno chcesz codziennie robić kopię całych dokumentów. Wystarczy, że będziesz miał jeden większy plik i po paru tygodniach zabraknie Ci miejsca na kopie zapasowe. Może lepiej zrobić kopię przyrostową (jeśli chcesz mieć wszystkie wersję) lub co jakiś czas nadpisywać stare kopie.

Jeśli ustawisz je w crontabie jako root

Raczej taki komunikat nie wskazuje aby coś się wykonało

Zainteresuj się może synchronizacją przy pomocy rsync.

Jeśli chcesz coś w Ubuntu wykonywać z uprawnieniami roota, to wrzucasz to do crona dla roota, dokładniej.

sudo crontab -e

Wklepujesz tam swoje polecenie lub ścieżkę do skryptu bez sudo i zapisujesz zmiany. Jeśli chcesz coś wykonywać jako zwykły użytkownik i nie potrzebujesz uprawnień roota, polecenia wrzucasz do corna użytkownika.

crontab -e

Poprawnie powinno być tak

/media/BACKUP/KOPIA2$(date +%Y%m%d).zip

lub tak

/media/BACKUP/KOPIA2`date +%Y%m%d`.zip

Pozdrawiam!