Próbuję utworzyć zadanie cron do tworzenia kopii zapasowej bazy danych.Tworzenie zadania cron dla mysqldump
To, co mam tak daleko:
mysqldump.sh
mysqldump -u root -ptest --all-databases | gzip > "/db-backup/backup/backup-$(date)" 2> dump.log
echo "Finished mysqldump $(date)" >> dump.log
Cron zadanie:
32 18 * * * /db-backup/mysqldump.sh
Problem Mam to zadanie nie jest wykonywany przez cron lub kiedy nie ma mnie w katalogu.
Czy ktoś może doradzić. Czy moje ścieżki są nieprawidłowe?
Również następujący wiersz nie jestem pewien błędy wyjście będzie do dump.log:
mysqldump -u root -ptest --all-databases | gzip > "/db-backup/backup/backup-$(date)" 2> dump.log
Co pracował:
mysqldump -u root -ptest --all-databases | gzip > "../db-backup/backup/backup-$(date).sql.gz" 2> ../db-backup/dump.log
echo "Finished mysqldump $(date)" >> ../db-backup/dump.log
Twój przykład powinien działać. Jak się upewnić, że to * nie działa *? – hek2mgl
Cóż, jeśli jestem w katalogu i wpisuję ./mysqldump.sh to działa; jednak jeśli I cd .. i wpisz say ./db-backup/mysqldump.sh, to dziennik i powrót nie są pobierane. Ponadto, powyższe zadanie cron zostało ustawione na 18:32 w celu przetestowania. 18:32 minęło, że nie wykonano kopii zapasowej. – Brian
Należy użyć ścieżki bezwzględnej pliku dziennika. Podobnie jak '/ var/log/mysql.dump.log'. Upewnij się, że plik jest zapisywalny przez użytkownika cron. Uwaga: zadania wymienione w/etc/crontab lub /etc/cron.d* zostaną wykonane jako root. Istnieje również mechanizm crontab na użytkownika. Takie cronjobs będą działać z takimi samymi uprawnieniami jak użytkownik, do którego należy crontab – hek2mgl