Tôi đang sử dụng PUTTY để tiếp cận máy chủ. Tôi có thể kết xuất cơ sở dữ liệu bằng lệnh sau:
/usr/bin/mysqldump --all-databases | /bin/gzip > Backup_DB/alldatabases_test.sql.gz
Khi tôi đang chạy tập lệnh từ root, tập tin sẽ bị hủy trong thư mục được chỉ định:
root@server1 [~]# sh mybackup.sh
root@server1 [~/Backup_DB]# ls -a
./ ../ alldatabases_test.sql.gz
Tuy nhiên, khi tôi thiết lập nó như một cronjob, nó sẽ không bỏ đi bất cứ thứ gì:
*/2 * * * * sh mybackup.sh
Các cronjobs khác đang hoạt động tốt.
BIÊN TẬP
Vì vậy, chạy tập lệnh không hoạt động, nhưng tôi đánh giá cao sự giúp đỡ của bạn. Mục tiêu cuối cùng của tôi là chạy tập lệnh từ một nơi có tất cả các cronjob khác của tôi và tạo bản sao lưu trong một thư mục mà tôi có quyền truy cập ftp. Đó là lý do tại sao tôi thêm một cronjob:
*/2 * * * * sh /home/mysite/www/cronjobs/mybackup.sh
với nội dung:
/usr/bin/mysqldump --all-databases | /bin/gzip > /home/mysite/www/cronjobs/alldatabases.sql.gz
Điều này cũng không hoạt động. Tôi không thể tìm thấy alldatabase.sql.gz trong thư mục / cronjobs. Là các đường dẫn được đặt sai?
mybackup.sh
. Bạn có thể gõ pwd
để có được thư mục làm việc hiện tại. Hãy nói nó /home/username
, nối nó với mybackup.sh
. Vì vậy, trong cron của bạn, bạn có thể sử dụng một cái gì đó như sh /home/username/mybackup.sh
. Hy vọng sự giúp đỡ này :)
sh /root/mybackup.sh
mybackup.sh
? Bạn có thể thử thay đổi cronjob của bạn thànhsh /path/to/mybackup.sh
?