У меня есть эта команда rsync
которая прекрасно работает, когда я запускаю ее из командной строки (Ubuntu Server 12.04.1 LTS). Мне бы хотелось, чтобы он запускался каждый час, каждый час и выводил результаты (вместе с ошибками) в файл журнала. Вот команда, которую я поместил в crontab:
0 * * * * root rsync -av --delete -e "ssh -i /root/.ssh/id_rsa"
user@host:/path/to/dir/ user@host:/path/to/another/dir/ /destination/dir
--exclude='.DS_Store' &> /var/log/backup/`date '+%Y_%m_%d_%H:%M'`_hourlybackup.log
Несмотря на то, что он работает точно так, как я ожидал от bash, в crontab ничего не происходит. Он даже не пишет никаких ошибок в файл. Запуск ps aux | grep rsync
ничего интересного не показывает. Я не могу найти проблему. Есть идеи?
ОБНОВЛЕНИЕ: Благодаря ответам, которые я получил, я смог настроить команду так, чтобы она работала должным образом, хотя никто из них не решил проблему самостоятельно. Вот что я нашел работы этим утром:
0 * * * * /usr/bin/rsync -av --delete -e "ssh -i /root/.ssh/id_rsa"
user@host:/path/to/dir/ user@host:/path/to/another/dir/ /destination/dir
--exclude='.DS_Store' > /var/log/backup/_hourlybackup.log 2>&1
По какой-то причине причиной является проблема date '+%Y_%m_%d_%H:%M'
(заключенная в обратные черты). Если я уберу это из команды, все будет работать нормально ... хотя для меня важно, чтобы у меня были полные журналы резервного копирования, поэтому я все же хотел бы найти решение этой проблемы. Я буду продолжать хакаться, но если кто-нибудь знает, будь моим гостем.