Mam skrypt uruchamiany w cron
celu utworzenia kopii zapasowej bazy danych MySQL i niektórych plików. Po utworzeniu tar smoły i zaszyfrowaniu jej openSSH
muszę umieścić ją na zdalnym serwerze ftp. Poniżej znajduje się kod części ftp:
HOST='abcd.dyndns.biz'
USER='username'
PASSWD='password'
FILE='myBack-'${LOCAL_HOST}'-'${DATENAME}'.enc.tar.gz'
DIRNAME='/usr/local/backups/'
cd ${DIRNAME}
ftp -n ${HOST} <<END_SCRIPT
quote USER ${USER}
quote PASS ${PASSWD}
cd backup
lcd ${DIRNAME}
put ${FILE}
quit
END_SCRIPT
Jeśli bezpośrednio uruchomię skrypt z wiersza polecenia > sudo ./mybackup.sh
, działa on płynnie i umieszczam plik kopii zapasowej na ftp, ale gdy jest uruchomiony cron
, nigdy nie umieścił pliku na ftp przez inne pliki przed ftp i po ftp (takie jak konsolidacja pliku dziennika i wysłanie e-maila wynik) kroki działają dobrze. Nie jestem w stanie uzyskać niczego z plików dziennika ani też wskazać przyczyny.
UWAGA: - Nasz ip dyndns.biz nie zmienia się, ponieważ zapłaciliśmy za abonament.
cron
uruchamia zadanie jako root.
crontab -l
?
sudo crontab -l
`. # mh dom mon dow polecenie 0 22 * * * / usr / local / backups / osback.sh`
mail
poleceniem. Czy sprawdziłeś, że cron działa z odpowiednimi uprawnieniami?