Tôi đã nhận được rsync
lệnh này chỉ hoạt động tốt khi tôi chạy nó từ dòng lệnh (Ubuntu Server 12.04.1 LTS). Tôi muốn nó chạy mỗi giờ, mỗi giờ và xuất kết quả (cùng với lỗi) vào một tệp nhật ký. Đây là lệnh tôi đã đưa vào 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
Mặc dù hoạt động chính xác như tôi mong đợi từ bash, nhưng không có gì xảy ra khi nó ở crontab. Nó thậm chí không ghi bất kỳ lỗi nào vào tập tin. Chạy ps aux | grep rsync
cho thấy không có gì quan tâm. Tôi dường như không thể tìm thấy vấn đề. Có ý kiến gì không?
CẬP NHẬT: Nhờ các câu trả lời tôi nhận được, tôi có thể điều chỉnh lệnh để nó hoạt động chính xác, mặc dù không ai trong số họ tự giải quyết vấn đề. Đây là những gì tôi tìm thấy hoạt động sáng nay:
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
Vì một số lý do, date '+%Y_%m_%d_%H:%M'
(kèm theo backticks) đang gây ra vấn đề. Nếu tôi loại bỏ nó khỏi lệnh, nó sẽ hoạt động tốt ... mặc dù điều quan trọng với tôi là tôi có nhật ký sao lưu toàn diện, vì vậy tôi vẫn muốn tìm giải pháp cho vấn đề này. Tôi sẽ tiếp tục hack nó, nhưng nếu có ai biết, hãy là khách của tôi.
sudo crontab -e
. Tôi nhận ra rằng tôi đã phạm sai lầm và không cần phải nói rõ ràng là sử dụng root người dùng, vì vậy tôi đã xóa nó, nhưng không có gì thay đổi. Tôi cũng đã thử sao chép nó vào /etc/crontab
, nhưng nó cũng không hoạt động. FYI khác, các lệnh cron đơn giản hơn hoạt động tốt - echo 'lol' > test.out
chẳng hạn.