Đừng dùng crontab -e
Tôi sẽ không đặt nó vào crontab -e
gốc. Điều này thường ít rõ ràng hơn đối với các quản trị viên khác và có khả năng bị mất theo thời gian. Đưa chúng vào /etc/crontab
bạn có thể chỉ định chính xác thời gian bạn muốn chúng chạy và bạn cũng có thể chỉ định một người dùng khác.
Địa điểm thay thế
Nếu bạn không quan tâm đến việc chạy tập lệnh với tư cách là một người dùng khác và / hoặc bạn chỉ muốn tập lệnh chạy hàng tuần, hàng ngày, v.v. thì một số bản phân phối cung cấp các thư mục có thể đặt các tập lệnh sẽ tự động được xử lý tại một thời điểm cụ thể.
Ví dụ trong phân phối dựa trên Redhat:
$ ls -dl /etc/cron*
drwxr-xr-x. 2 root root 4096 Nov 29 11:06 /etc/cron.d
drwxr-xr-x. 2 root root 4096 Nov 29 11:06 /etc/cron.daily
-rw-------. 1 root root 0 Nov 23 07:42 /etc/cron.deny
drwxr-xr-x. 2 root root 4096 Nov 29 11:03 /etc/cron.hourly
drwxr-xr-x. 2 root root 4096 Nov 29 11:06 /etc/cron.monthly
-rw-r--r--. 1 root root 457 Sep 26 2011 /etc/crontab
drwxr-xr-x. 2 root root 4096 Sep 26 2011 /etc/cron.weekly
Tôi sẽ thường xuyên đặt các crons cấp hệ thống mà tôi muốn chạy vào một thời điểm cụ thể /etc/cron.d
thay vì /etc/crontab
, đặc biệt nếu chúng là các tập lệnh phức tạp hơn.
Tôi thích sử dụng các thư mục bên dưới /etc/cron*
vì chúng là một nơi rõ ràng hơn nhiều mà các quản trị viên hệ thống khác sẽ biết để xem và các tệp ở đây có thể được quản lý thông qua các gói cài đặt như rpm
và / hoặc apt
.
Bảo vệ mục
Bất kỳ thư mục nào tôi đã đề cập đều được chỉ định để đặt các tập lệnh sẽ không bị hủy bởi trình quản lý gói. Nếu bạn lo lắng về việc bảo vệ một mục crontab, thì tôi chắc chắn sẽ không đưa nó vào /etc/crontab
tệp, và thay vào đó đặt nó như một tập lệnh thích hợp trong một trong các /etc/cron*
thư mục.