Câu hỏi Làm thế nào tôi có thể chạy một công việc hàng năm với anacron?


Tôi muốn sử dụng anacron để chạy một công việc hàng năm. Tôi chỉ thấy cấu hình hàng ngày, hàng tuần và hàng tháng cho anacron. Có cách nào để chạy một công việc một lần mỗi năm không?


4
2017-11-25 18:05


gốc




Các câu trả lời:


Ofcourse và nó đã có sẵn với các lựa chọn có thể bạn có: chọn 1 ngày cụ thể và 1 tháng cụ thể và nó sẽ chạy một lần mỗi năm. Ngày 1 của tháng 1 sẽ vào ngày 1 tháng 1.

Anacron có 2 cách xác định đường kẻ. Cái thứ hai là như thế này:

 @period_name delay job-identify command

Các period_name có thể được thiết lập để hàng ngày, hàng tuần, hàng tháng, hàng năm hoặc hàng năm. Điều này sẽ đảm bảo công việc được thực hiện một lần một tuần, tháng hoặc năm bất kể số ngày trong giai đoạn này.

Thí dụ

@yearly 0 job1 /usr/bin/execute_me

0 có nghĩa là không có sự chậm trễ. job1 là một định danh và lệnh để thực hiện.


4
2017-11-25 18:20



Làm thế nào @period_name sẽ làm việc với anacron? Tôi nghĩ rằng nó đã được sử dụng trong crontab, mà không đảm bảo thực hiện nếu máy tắt. - Jeremy Stein
Ở đây bạn đi @JeremyStein linux.die.net/man/5/anacrontab hoặc là manpages.ubuntu.com/manpages/precise/man5/anacrontab.5.html ;) - Rinzwind
Ah, vì vậy tôi có thể thêm một dòng vào anacrontab như thế này: @yearly 20 cron.yearly nice run-parts --report /etc/cron.yearly và sau đó thêm tập lệnh của tôi vào /etc/cron.yearly? - Jeremy Stein
Không biết chắc chắn nhưng phần cuối cùng (phần mềm chạy tốt đẹp --report /etc/cron.yearly) có thể cần phải là 1 lệnh (không phải đó là một vấn đề vì bạn có thể quăng rằng trong một kịch bản và thực thi kịch bản) . - Rinzwind


Tôi nghĩ rằng điều này sẽ hoạt động trừ khi máy tính của tôi tắt cho tất cả tháng 1:

Trong tập tin /etc/cron.monthly:

#!/bin/sh
month=`date +%m`
if [ $month -eq 1 ]
then do_yearly_task
fi

0
2017-11-25 18:21