Gần đây tôi đã cài đặt Ubuntu mới. Tôi đang cố gắng thiết lập một số công việc định kỳ bằng cách sử dụng Sudo crontab -e
Crontab của tôi như sau:
# Chỉnh sửa tệp này để giới thiệu các tác vụ sẽ được chạy bởi cron.
#
# Mỗi tác vụ để chạy phải được xác định thông qua một dòng
# cho biết với các trường khác nhau khi tác vụ sẽ được chạy
# và lệnh nào để chạy cho tác vụ
#
# Để xác định thời gian bạn có thể cung cấp các giá trị cụ thể cho
# phút (m), giờ (h), ngày trong tháng (dom), tháng (mon),
# và ngày trong tuần (dow) hoặc sử dụng '*' trong các trường này (đối với 'bất kỳ').
#
# Lưu ý rằng các tác vụ sẽ được bắt đầu dựa trên hệ thống của cron
# khái niệm về thời gian và múi giờ của daemon.
#
# Đầu ra của các công việc crontab (bao gồm cả lỗi) được gửi qua
# gửi email cho người dùng tệp crontab thuộc về (trừ khi được chuyển hướng).
#
# Ví dụ: bạn có thể chạy sao lưu tất cả tài khoản người dùng của mình
# 5h sáng hàng tuần với:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# Để biết thêm thông tin, hãy xem các trang hướng dẫn của crontab(5) và cron(8)
#
# lệnh m h dom mon dow
# Nhiệm vụ #1 - Khởi động dịch vụ cục bộ cho noips (nhà cung cấp DNS động) và thay đổi quyền của ổ đĩa được gắn để dịch vụ khác có thể truy cập các tệp đã nói
@reboot /usr/local/bin/noip2 && chown -R ikaros:plex /home/ikaros/mnt/ > /dev/null
# Nhiệm vụ #2 - Tắt máy chủ hàng ngày lúc 0 giờ 10 phút
0 10 * * * /sbin/shutdown -r +5 > /dev/null
# Nhiệm vụ #3 - Kết xuất cơ sở dữ liệu postgreSQL vào một tệp tại 0 11
0 11 * * * (pg_dumpall > /home/ikaros/postgres_backups/"backup_$(date +%F)".sql) >> /home/ikaros/logs/pg_dump.log 2>&1
# Nhiệm vụ #4 - Đảm bảo chỉ 5 tệp sao lưu cuối cùng được lưu trên đĩa mỗi ngày vào lúc 0 9
0 9 * * * (cd /home/ikaros/postgres_backups/ && ls -tp | grep -v '/$' | tail -n +5 | xargs -d '\n' -r rm -- ) >> /home /ikaros/logs/pg_clear_backups.log 2>&1
Nhiệm vụ số 1 dường như hoạt động tốt.
Nhiệm vụ số 2 dường như hoạt động tốt.
Nhiệm vụ #3 KHÔNG BAO GIỜ chạy, mặc dù khi tôi dán lệnh này (pg_dumpall > /home/ikaros/postgres_backups/"backup_$(date +%F)".sql) >> /home/ikaros/logs/pg_dump.log 2>&1
khi đăng nhập với tư cách người dùng ikaros
, nó hoạt động tốt.
Nhiệm vụ #4 cũng KHÔNG BAO GIỜ chạy, mặc dù tôi dán lệnh (cd /home/ikaros/postgres_backups/ && ls -tp | grep -v '/$' | tail -n +5 | xargs -d '\n' -r rm -- ) >> /home/ikaros/logs/ pg_clear_backups.log 2>&1
trong khi đăng nhập như ikaros
, mọi thứ hoạt động như mong đợi.
Tôi làm gì sai ở đây? Có lời khuyên nào không?
Nhiều đánh giá cao!