เชเซเชฒเชพเชธเชฟเชเซ เชฒเชเซเชฏเซเช เชเซ เชเซ เชเซเชถ เชเชฒเชพเชเซ เชเซเชคเชพ เชจเชฅเซ. เชคเซ เชเชเชเชฒเซ เชธเชฎเชฏเชฎเชพเช เชจ เชคเซ เชชเซเชฐเซเชเซเชฐเชพเชฎเชฐเซ เชนเชคเชพ เช เชจเซ เชจ เชคเซ เชฏเซเชจเชฟเชเซเชธ, เชชเชฐเชเชคเซ เชเชเซ เชชเซเชฐเซเชเซเชฐเชพเชฎเชฐเซ เชเชพเชคเชฐเซเชชเซเชฐเซเชตเช เชเชพเชฃเซ เชเซ: เชเซเชฐเซเชจ เชคเซเชฎเชจเชพ เชฌเชฆเชฒเซ เชธเชฎเชฏเชจเซ เชเซเชฐเซเช เชฐเชพเชเชถเซ.
เชเชฆเซเชถ เชตเชพเชเซเชฏ เชเชชเชฏเซเชเชฟเชคเชพเช เชฎเชพเชฐเชพ เชฎเชพเชเซ เชจเชฌเชณเชพเช เช เชจเซ เชเชพเชฎเชเชพเช เชฌเชเชจเซ เชเซ. sed, awk, wc, cut เช เชจเซ เช เชจเซเชฏ เชเซเชจเชพ เชชเซเชฐเซเชเซเชฐเชพเชฎเซเชธ เชฆเชฐเชฐเซเช เช เชฎเชพเชฐเชพ เชธเชฐเซเชตเชฐ เชชเชฐ เชธเซเชเซเชฐเชฟเชชเซเช เชฆเซเชตเชพเชฐเชพ เชเชฒเชพเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เชคเซเชฎเชพเชเชจเชพ เชเชฃเชพ เชเซเชฐเซเชจ เชฎเชพเชเซเชจเชพ เชเชพเชฐเซเชฏเซ เชคเชฐเซเชเซ เชกเชฟเชเชพเชเชจ เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเชพ เชเซ, เชเซ เชฎเซเชณ 70 เชจเชพ เชฆเชพเชฏเชเชพเชจเชพ เชถเซเชกเซเชฏเซเชฒเชฐ เชเซ.
เชฒเชพเชเชฌเชพ เชธเชฎเชฏ เชธเซเชงเซ, เชฎเซเช เชตเชฟเชเชคเซเชฎเชพเช เชเชฏเชพ เชตเชฟเชจเชพ, เชเซเชฐเซเชจเชจเซ เชธเซเชชเชฐเชซเชฟเชธเชฟเชฏเชฒ เชเชชเชฏเซเช เชเชฐเซเชฏเซ, เชชเชฐเชเชคเซ เชเช เชฆเชฟเชตเชธ, เชเซเชฏเชพเชฐเซ เชฎเชจเซ เชธเซเชเซเชฐเชฟเชชเซเช เชเชฒเชพเชตเชคเซ เชตเชเชคเซ เชญเซเชฒ เชเชตเซ, เชคเซเชฏเชพเชฐเซ เชฎเซเช เชคเซเชจเซ เชธเชเชชเซเชฐเซเชฃ เชฐเซเชคเซ เชคเชชเชพเชธเชตเชพเชจเซเช เชจเชเซเชเซ เชเชฐเซเชฏเซเช. เช เชฐเซเชคเซ เช เชฒเซเช เชฆเซเชเชพเชฏเซ, เชคเซ เชฒเชเชคเซ เชตเชเชคเซ เชนเซเช POSIX เชเซเชฐเซเชจเซเชเชพเชฌ, เชฒเซเชเชชเซเชฐเชฟเชฏ Linux เชตเชฟเชคเชฐเชฃเซเชฎเชพเช เชฎเซเชเซเชฏ เชเซเชฐเซเชจ เชตเชฟเชเชฒเซเชชเซ เช เชจเซ เชคเซเชฎเชพเชเชจเชพ เชเซเชเชฒเชพเชเชจเซ เชฐเชเชจเชพเชฅเซ เชชเชฐเชฟเชเชฟเชค เชฅเชฏเซ.
เชถเซเช เชคเชฎเซ Linux เชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ เช เชจเซ เชเซเชฐเซเชจ เชเชพเชฐเซเชฏเซ เชเชฒเชพเชตเซ เชฐเชนเซเชฏเชพ เชเซ? เชถเซเช เชคเชฎเชจเซ เชฏเซเชจเชฟเชเซเชธเชฎเชพเช เชธเชฟเชธเซเชเชฎ เชเชชเซเชฒเชฟเชเซเชถเชจ เชเชฐเซเชเชฟเชเซเชเซเชเชฐเชฎเชพเช เชฐเชธ เชเซ? เชชเชเซ เช เชฎเซ เช เชฎเชพเชฐเชพ เชฎเชพเชฐเซเช เชชเชฐ เชเซเช!
เช เชจเซเชเซเชฐเชฎเชฃเชฟเชเชพ
เชเชพเชคเชฟเชเชจเซ เชเชคเซเชชเชคเซเชคเชฟ เชชเซเชธเชฟเชเซเชธ เชเซเชฐเซเชจเซเชเชพเชฌ เชฌเซเชธเซเช เชธเซเชฒเชฐ - Vixie cron 3.0pl1 เชกเซเชฌเชฟเชฏเชจ เช เชจเซ เชเชฌเซเชจเซเชเซ เชชเชฐ เชเซเชฐเซเชจ Red Hat, Fedora เช เชจเซ CentOS เชชเชฐ cronie SLES เช เชจเซ openSUSE เชฎเชพเช เชเซเชฐเซเชจเซ เชตเชฟเชเซเชธเซ เชเซเชฐเซเชจ เชเชชเชเชฐเชฃ เชเชเซเชเชพเชฐเชฃ
เชเชพเชคเชฟเชเชจเซ เชเชคเซเชชเชคเซเชคเชฟ
เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เช เชฅเชตเชพ เชธเชฟเชธเซเชเชฎ เชชเซเชฐเซเชเซเชฐเชพเชฎเซเชธเชจเซเช เชธเชพเชฎเชฏเชฟเช เช เชฎเชฒ เช เชคเชฎเชพเชฎ เชเชชเชฐเซเชเชฟเชเช เชธเชฟเชธเซเชเชฎเซเชธเชฎเชพเช เชธเซเชชเชทเซเช เชเชตเชถเซเชฏเชเชคเชพ เชเซ. เชคเซเชฅเซ, เชชเซเชฐเซเชเซเชฐเชพเชฎเชฐเซเชจเซ เชเชตเซ เชธเซเชตเชพเชเชจเซ เชเชฐเซเชฐเชฟเชฏเชพเชคเชจเซ เช เชนเซเชธเชพเชธ เชฅเชฏเซ เชเซ เชเซ เชคเซเชฎเชจเซ เชเซเชจเซเชฆเซเชฐเชฟเชฏ เชฐเซเชคเซ เชฏเซเชเชจเชพ เชเชกเซ เชถเชเซ เช เชจเซ เชฒเชพเชเชฌเชพ เชธเชฎเชฏ เชชเชนเซเชฒเชพ เชเชพเชฐเซเชฏเซเชจเซ เช เชฎเชฒ เชเชฐเซ เชถเชเซ.
เชฏเซเชจเชฟเชเซเชธ เชเซเชตเซ เชเชชเชฐเซเชเชฟเชเช เชธเชฟเชธเซเชเชฎเซ เชคเซเชฎเชจเซ เชเชคเซเชชเชคเซเชคเชฟเชจเซ เชตเชฐเซเชเชจ 7 เชฏเซเชจเชฟเชเซเชธ เชชเชฐ เชถเซเชงเซ เชเชพเชขเซ เชเซ, เชเซ เชเซเชฒเซเชฒเซ เชธเชฆเซเชจเชพ 70 เชจเชพ เชฆเชพเชฏเชเชพเชฎเชพเช เชฌเซเชฒ เชฒเซเชฌเซเชธเชฎเชพเช เชตเชฟเชเชธเชฟเชค เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชนเชคเซ, เชเซเชฎเชพเช เชชเซเชฐเชเซเชฏเชพเชค เชเซเชจ เชฅเซเชฎเซเชชเชธเชจเชจเซ เชชเชฃ เชธเชฎเชพเชตเซเชถ เชฅเชพเชฏ เชเซ. เชตเชฐเซเชเชจ 7 เชฏเซเชจเชฟเชเซเชธเชฎเชพเช เชเซเชฐเซเชจเชจเซ เชชเชฃ เชธเชฎเชพเชตเซเชถ เชฅเชพเชฏ เชเซ, เชเซ เชธเซเชชเชฐเชฏเซเชเชฐ เชเชพเชฐเซเชฏเซเชจเซ เชจเชฟเชฏเชฎเชฟเชค เชฐเซเชคเซ เชเชฒเชพเชตเชตเชพ เชฎเชพเชเซเชจเซ เชธเซเชตเชพ เชเซ.
เชธเชพเชฎเชพเชจเซเชฏ เชเชงเซเชจเชฟเช เชเซเชฐเซเชจ เช เชเช เชธเชฐเชณ เชชเซเชฐเซเชเซเชฐเชพเชฎ เชเซ, เชชเชฐเชเชคเซ เชฎเซเชณ เชธเชเชธเซเชเชฐเชฃเชจเซเช เชเชชเชฐเซเชเชฟเชเช เช เชฒเซเชเซเชฐเชฟเชงเชฎ เชตเชงเซ เชธเชฐเชณ เชนเชคเซเช: เชธเซเชตเชพ เชเช เชฎเชฟเชจเชฟเชเชฎเชพเช เชเชเชตเชพเชฐ เชเชพเชเซ เชเชพเชฏ เชเซ, เชเช เช เชซเชพเชเชฒ (/etc/lib/crontab)เชฎเชพเชเชฅเซ เชเชพเชฐเซเชฏเซ เชธเชพเชฅเซเชจเซเช เชเซเชฌเชฒ เชตเชพเชเชเซ เชเซ เช เชจเซ เชคเซเชจเชพ เชฎเชพเชเซ เชชเชฐเชซเซเชฐเซเชฎ เชเชฐเซ เชเซ. เชธเซเชชเชฐเชฏเซเชเชฐ เชคเซ เชเชพเชฐเซเชฏเซ เชเซ เชเซ เชตเชฐเซเชคเชฎเชพเชจ เชเซเชทเชฃเซ เชเชฐเชตเชพ เชเซเชเช.
เชคเซเชฏเชพเชฐเชฌเชพเชฆ, เชฏเซเชจเชฟเชเซเชธ เชเซเชตเซ เชเชชเชฐเซเชเชฟเชเช เชธเชฟเชธเซเชเชฎ เชธเชพเชฅเซ เชธเชฐเชณ เช เชจเซ เชเชชเชฏเซเชเซ เชธเซเชตเชพเชจเชพ เชธเซเชงเชพเชฐเซเชฒเชพ เชธเชเชธเซเชเชฐเชฃเซ เชชเซเชฐเชพ เชชเชพเชกเชตเชพเชฎเชพเช เชเชตเซเชฏเชพ.
เชเซเชฐเซเชจเซเชเชพเชฌ เชซเซเชฐเซเชฎเซเชเชจเซเช เชธเชพเชฎเชพเชจเซเชฏ เชตเชฐเซเชฃเชจ เช เชจเซ เชฏเซเชเชฟเชฒเชฟเชเซเชจเซ เชเชพเชฎเชเซเชฐเซเชจเชพ เชฎเซเชณเชญเซเชค เชธเชฟเชฆเซเชงเชพเชเชคเซเชจเซ เชธเชฎเชพเชตเซเชถ เชฏเซเชจเชฟเชเซเชธ เชเซเชตเซ เชเชชเชฐเซเชเชฟเชเช เชธเชฟเชธเซเชเชฎเชจเชพ เชฎเซเชเซเชฏ เชงเซเชฐเชฃ - POSIX -เชฎเชพเช 1992เชฎเชพเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซ เชนเชคเซ, เช เชจเซ เช เชฐเซเชคเซ เชเซเชฐเซเชจ เชกเชฟ เชซเซเชเซเชเซ เชธเซเชเชพเชจเซเชกเชฐเซเชกเชฎเชพเชเชฅเซ เชเซเชฏเซเชฐ เชธเซเชเชพเชจเซเชกเชฐเซเชก เชฌเชจเซ เชเชฏเซเช เชนเชคเซเช.
1987 เชฎเชพเช, เชชเซเชฒ เชตเชฟเชเซเชธเซเช, เชฏเซเชจเชฟเชเซเชธ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชเชจเซ เชเซเชฐเซเชจ เชฎเชพเชเซเชจเซ เชคเซเชฎเชจเซ เชเชเซเชเชพเช เชตเชฟเชถเซ เชธเชฐเซเชตเซเชเซเชทเชฃ เชเชฐเซเชฏเชพ เชชเชเซ, เชกเชฟเชฎเชจเชจเซเช เชฌเซเชเซเช เชธเชเชธเซเชเชฐเชฃ เชฌเชนเชพเชฐ เชชเชพเชกเซเชฏเซเช เชเซเชฃเซ เชชเชฐเชเชชเชฐเชพเชเชค เชเซเชฐเซเชจเชจเซ เชเซเชเชฒเซเช เชธเชฎเชธเซเชฏเชพเช เชธเซเชงเชพเชฐเซ เช เชจเซ เชเซเชฌเชฒ เชซเชพเชเชฒเซเชจเชพ เชตเชพเชเซเชฏเชฐเชเชจเชพเชจเซ เชตเชฟเชธเซเชคเชพเชฐ เชเชฐเซเชฏเซ.
เชตเชฟเชเซเชธเซ เชเซเชฐเซเชจเชจเชพ เชคเซเชฐเซเชเชพ เชธเชเชธเซเชเชฐเชฃ เชฆเซเชตเชพเชฐเชพ POSIX เชเชตเชถเซเชฏเชเชคเชพเชเชจเซ เชชเซเชฐเซเชฃ เชเชฐเชตเชพเชจเซเช เชถเชฐเซ เชฅเชฏเซเช, เชตเชงเซเชฎเชพเช, เชชเซเชฐเซเชเซเชฐเชพเชฎ เชชเชพเชธเซ เชเชฆเชพเชฐ เชฒเชพเชฏเชธเชจเซเชธ เชนเชคเซเช, เช เชฅเชตเชพ เชคเซเชจเชพ เชฌเชฆเชฒเซ, README เชฎเชพเชเชจเซ เชเชเซเชเชพเช เชธเชฟเชตเชพเชฏ เชเซเช เชฒเชพเชฏเชธเชจเซเชธ เชจเชนเซเชคเซเช: เชฒเซเชเช เชเซเชฐเชเชเซ เชเชชเชคเชพ เชจเชฅเซ, เชฒเซเชเชเชจเซเช เชจเชพเชฎ เชเชพเชขเซ เชถเชเชพเชคเซเช เชจเชฅเซ, เช เชจเซ เชชเซเชฐเซเชเซเชฐเชพเชฎ เชซเชเซเชค เชธเซเชฐเซเชธ เชเซเชก เชธเชพเชฅเซ เชตเซเชเซ เชถเชเชพเชฏ เชเซ. เช เชเชตเชถเซเชฏเชเชคเชพเช เชซเซเชฐเซ เชธเซเชซเซเชเชตเซเชฐเชจเชพ เชธเชฟเชฆเซเชงเชพเชเชคเซ เชธเชพเชฅเซ เชธเซเชธเชเชเชค เชนเซเชตเชพเชจเซเช เชฌเชนเชพเชฐ เชเชตเซเชฏเซเช เชเซ เชคเซ เชตเชฐเซเชทเซเชฎเชพเช เชฒเซเชเชชเซเชฐเชฟเชฏเชคเชพ เชฎเซเชณเชตเซ เชฐเชนเซเชฏเซเช เชนเชคเซเช, เชคเซเชฅเซ 90 เชจเชพ เชฆเชพเชฏเชเชพเชจเซ เชถเชฐเซเชเชคเชฎเชพเช เชฆเซเชเชพเชคเชพ เชเซเชเชฒเชพเช เชฎเซเชเซเชฏ Linux เชตเชฟเชคเชฐเชฃเซเช เชตเชฟเชเซเชธเซ เชเซเชฐเซเชจเชจเซ เชคเซเชฎเชจเซ เชธเชฟเชธเซเชเชฎ เชเช เชคเชฐเซเชเซ เชฒเซเชงเซ เช เชจเซ เชเชเซ เชชเชฃ เชคเซเชจเซ เชตเชฟเชเชพเชธ เชเชฐเซ เชฐเชนเซ เชเซ.
เชเชพเชธ เชเชฐเซเชจเซ, Red Hat เช เชจเซ SUSE เชตเชฟเชเซเชธเซ เชเซเชฐเซเชจ - เชเซเชฐเซเชจเซเชจเซ เชซเซเชฐเซเช เชตเชฟเชเชธเชพเชตเซ เชเซ เช เชจเซ เชกเซเชฌเชฟเชฏเชจ เช เชจเซ เชเชฌเซเชจเซเชเซ เชเชฃเชพ เชชเซเช เชธเชพเชฅเซ เชตเชฟเชเซเชธเซ เชเซเชฐเซเชจเชจเซ เชฎเซเชณ เชเชตเซเชคเซเชคเชฟเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ.
เชเชพเชฒเซ เชชเชนเซเชฒเชพ POSIX เชฎเชพเช เชตเชฐเซเชฃเชตเซเชฒ เชฏเซเชเชฐ เชฏเซเชเชฟเชฒเชฟเชเซ เชเซเชฐเซเชจเซเชเชพเชฌเชฅเซ เชชเชฐเชฟเชเชฟเชค เชฅเชเช, เชคเซ เชชเชเซ เชเชชเชฃเซ เชตเชฟเชเซเชธเซ เชเซเชฐเซเชจเชฎเชพเช เชชเซเชฐเชพ เชชเชพเชกเชตเชพเชฎเชพเช เชเชตเซเชฒ เชธเชฟเชจเซเชเซเชเซเชธ เชเชเซเชธเซเชเซเชเชถเชจ เช เชจเซ เชฒเซเชเชชเซเชฐเชฟเชฏ เชฒเชฟเชจเชเซเชธ เชกเชฟเชธเซเชเซเชฐเชฟเชฌเซเชฏเซเชถเชจเชฎเชพเช เชตเชฟเชเซเชธเซ เชเซเชฐเซเชจเชจเซ เชตเชฟเชตเชฟเชงเชคเชพเชเชจเซ เชเชชเชฏเซเช เชเซเชเชถเซเช. เช เชจเซ เชเซเชฒเซเชฒเซ, เชเซเช เชชเชฐเชจเซ เชเซเชฐเซ เช เชเซเชฐเซเชจ เชกเชฟเชฎเชจ เชเชชเชเชฐเชฃเชจเซเช เชตเชฟเชถเซเชฒเซเชทเชฃ เชเซ.
เชชเซเชธเชฟเชเซเชธ เชเซเชฐเซเชจเซเชเชพเชฌ
เชเซ เชฎเซเชณ เชเซเชฐเซเชจ เชนเชเชฎเซเชถเชพ เชธเซเชชเชฐเชฏเซเชเชฐ เชฎเชพเชเซ เชเชพเชฎ เชเชฐเซ เชเซ, เชคเซ เชเชงเซเชจเชฟเช เชถเซเชกเซเชฏเซเชฒเชฐเซเชธ เชเชฃเซเชตเชพเชฐ เชธเชพเชฎเชพเชจเซเชฏ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชเชจเชพ เชเชพเชฐเซเชฏเซ เชธเชพเชฅเซ เชตเซเชฏเชตเชนเชพเชฐ เชเชฐเซ เชเซ, เชเซ เชตเชงเซ เชธเซเชฐเชเซเชทเชฟเชค เช เชจเซ เช เชจเซเชเซเชณ เชเซ.
เชเซเชฐเซเชจเซเชธ เชฌเซ เชชเซเชฐเซเชเซเชฐเชพเชฎเซเชธเชจเชพ เชธเชฎเซเชน เชคเชฐเซเชเซ เชชเซเชฐเชพ เชชเชพเชกเชตเชพเชฎเชพเช เชเชตเซ เชเซ: เชธเชคเชค เชเชพเชฒเชคเซเช เชเซเชฐเซเชจ เชกเชฟเชฎเชจ เช เชจเซ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเช เชฎเชพเชเซ เชเชชเชฒเชฌเซเชง เชเซเชฐเซเชจเซเชเชพเชฌ เชเชชเชฏเซเชเชฟเชคเชพ. เชฌเชพเชฆเชฎเชพเช เชคเชฎเชจเซ เชธเชฟเชธเซเชเชฎเชฎเชพเช เชฆเชฐเซเช เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชฎเชพเชเซ เชตเชฟเชถเชฟเชทเซเช เชเชพเชฐเซเชฏ เชเซเชทเซเชเชเซเชจเซ เชธเชเชชเชพเชฆเชฟเชค เชเชฐเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ, เชเซเชฏเชพเชฐเซ เชกเชฟเชฎเชจ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เช เชจเซ เชธเชฟเชธเซเชเชฎ เชเซเชทเซเชเชเซเชฎเชพเชเชฅเซ เชเชพเชฐเซเชฏเซ เชถเชฐเซ เชเชฐเซ เชเซ.
ะ
เชเซเชฐเซเชจเซเชเชพเชฌ เชฏเซเชเชฟเชฒเชฟเชเซเชจเซ เชเซเชฒ เชเชฐเซเชจเซ, เชคเชฎเซ เชเชพเชฐ เชตเชธเซเชคเซเช เชเชฐเซ เชถเชเซ เชเซ: เชเชกเชฟเชเชฐเชฎเชพเช เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชจเชพ เชเชพเชฐเซเชฏ เชเซเชทเซเชเชเชจเซ เชธเชเชชเชพเชฆเชฟเชค เชเชฐเซ, เชซเชพเชเชฒเชฎเชพเชเชฅเซ เชเซเชทเซเชเช เชฒเซเชก เชเชฐเซ, เชตเชฐเซเชคเชฎเชพเชจ เชเชพเชฐเซเชฏ เชเซเชทเซเชเช เชฌเชคเชพเชตเซ เช เชจเซ เชเชพเชฐเซเชฏ เชเซเชทเซเชเช เชธเชพเชซ เชเชฐเซ. เชเซเชฐเซเชจเซเชเชพเชฌ เชเชชเชฏเซเชเชฟเชคเชพ เชเซเชตเซ เชฐเซเชคเซ เชเชพเชฐเซเชฏ เชเชฐเซ เชเซ เชคเซเชจเชพ เชเชฆเชพเชนเชฐเชฃเซ:
crontab -e # ัะตะดะฐะบัะธัะพะฒะฐัั ัะฐะฑะปะธัั ะทะฐะดะฐั
crontab -l # ะฟะพะบะฐะทะฐัั ัะฐะฑะปะธัั ะทะฐะดะฐั
crontab -r # ัะดะฐะปะธัั ัะฐะฑะปะธัั ะทะฐะดะฐั
crontab path/to/file.crontab # ะทะฐะณััะทะธัั ัะฐะฑะปะธัั ะทะฐะดะฐั ะธะท ัะฐะนะปะฐ
เชเซเชฏเชพเชฐเซ เชฌเซเชฒเชพเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ crontab -e
เชชเซเชฐเชฎเชพเชฃเชญเซเชค เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชเชฒเชฎเชพเช เชเชฒเซเชฒเซเชเชฟเชค เชธเชเชชเชพเชฆเชเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ EDITOR
.
เชเชพเชฐเซเชฏเซ เชชเซเชคเซ เชจเซเชเซเชจเชพ เชซเซเชฐเซเชฎเซเชเชฎเชพเช เชตเชฐเซเชฃเชตเซเชฒ เชเซ:
# ัััะพะบะธ-ะบะพะผะผะตะฝัะฐัะธะธ ะธะณะฝะพัะธัััััั
#
# ะทะฐะดะฐัะฐ, ะฒัะฟะพะปะฝัะตะผะฐั ะตะถะตะผะธะฝััะฝะพ
* * * * * /path/to/exec -a -b -c
# ะทะฐะดะฐัะฐ, ะฒัะฟะพะปะฝัะตะผะฐั ะฝะฐ 10-ะน ะผะธะฝััะต ะบะฐะถะดะพะณะพ ัะฐัะฐ
10 * * * * /path/to/exec -a -b -c
# ะทะฐะดะฐัะฐ, ะฒัะฟะพะปะฝัะตะผะฐั ะฝะฐ 10-ะน ะผะธะฝััะต ะฒัะพัะพะณะพ ัะฐัะฐ ะบะฐะถะดะพะณะพ ะดะฝั ะธ ะธัะฟะพะปัะทัััะฐั ะฟะตัะตะฝะฐะฟัะฐะฒะปะตะฝะธะต ััะฐะฝะดะฐััะฝะพะณะพ ะฟะพัะพะบะฐ ะฒัะฒะพะดะฐ
10 2 * * * /path/to/exec -a -b -c > /tmp/cron-job-output.log
เชฐเซเชเซเชฐเซเชกเชจเชพ เชชเซเชฐเชฅเชฎ เชชเชพเชเช เชเซเชทเซเชคเซเชฐเซ: เชฎเชฟเชจเชฟเช [1..60], เชเชฒเชพเชเซ [0..23], เชฎเชนเชฟเชจเชพเชจเชพ เชฆเชฟเชตเชธเซ [1..31], เชฎเชนเชฟเชจเชพเช [1..12], เช เช เชตเชพเชกเชฟเชฏเชพเชจเชพ เชฆเชฟเชตเชธเซ [0. .6], เชเซเชฏเชพเช 0 เชฐเชตเชฟเชตเชพเชฐ เชเซ. เชเซเชฒเซเชฒเซเช, เชเช เซเช เซเช, เชเซเชทเซเชคเซเชฐ เช เชเช เชฐเซเชเชพ เชเซ เชเซ เชชเซเชฐเชฎเชพเชฃเชญเซเชค เชเชฆเซเชถ เชฆเซเชญเชพเชทเชฟเชฏเชพ เชฆเซเชตเชพเชฐเชพ เชเชฒเชพเชตเชตเชพเชฎเชพเช เชเชตเชถเซ.
เชชเซเชฐเชฅเชฎ เชชเชพเชเช เชเซเชทเซเชคเซเชฐเซเชฎเชพเช, เชฎเซเชฒเซเชฏเซเชจเซ เช เชฒเซเชชเชตเชฟเชฐเชพเชฎ เชฆเซเชตเชพเชฐเชพ เช เชฒเช เชเชฐเซเชจเซ เชธเซเชเชฟเชฌเชฆเซเชง เชเชฐเซ เชถเชเชพเชฏ เชเซ:
# ะทะฐะดะฐัะฐ, ะฒัะฟะพะปะฝัะตะผะฐั ะฒ ะฟะตัะฒัั ะธ ะดะตััััั ะผะธะฝััั ะบะฐะถะดะพะณะพ ัะฐัะฐ
1,10 * * * * /path/to/exec -a -b -c
เช เชฅเชตเชพ เชนเชพเชเชซเชจ เชธเชพเชฅเซ:
# ะทะฐะดะฐัะฐ, ะฒัะฟะพะปะฝัะตะผะฐั ะฒ ะบะฐะถะดัั ะธะท ะฟะตัะฒัั
ะดะตัััะธ ะผะธะฝัั ะบะฐะถะดะพะณะพ ัะฐัะฐ
0-9 * * * * /path/to/exec -a -b -c
เชเชพเชฐเซเชฏ เชธเซเชจเชฟเชถเซเชเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชจเซ เชเชเซเชธเซเชธเชจเซ POSIX เชฎเชพเช cron.allow เช เชจเซ cron.deny เชซเชพเชเชฒเซ เชฆเซเชตเชพเชฐเชพ เชจเชฟเชฏเชเชคเซเชฐเชฟเชค เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชเซ เช เชจเซเชเซเชฐเชฎเซ เชเซเชฐเซเชจเซเชเชพเชฌเชจเซ โโเชเชเซเชธเซเชธ เชงเชฐเชพเชตเชคเชพ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเช เช เชจเซ เชชเซเชฐเซเชเซเชฐเชพเชฎเชจเซ เชเชเซเชธเซเชธ เชตเชฟเชจเชพเชจเชพ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชเชจเซ เชธเซเชเชฟเชฌเชฆเซเชง เชเชฐเซ เชเซ. เชฎเชพเชจเช เช เชซเชพเชเชฒเซเชจเชพ เชธเซเชฅเชพเชจเชจเซ เชเซเชเชชเชฃ เชฐเซเชคเซ เชจเชฟเชฏเชเชคเซเชฐเชฟเชค เชเชฐเชคเซเช เชจเชฅเซ.
เชธเซเชเชพเชจเซเชกเชฐเซเชก เชฎเซเชเชฌ, เชฒเซเชเช เชฅเชฏเซเชฒเชพ เชชเซเชฐเซเชเซเชฐเชพเชฎเซเชธ เชฎเชพเชเซ เชเชเชพเชฎเชพเช เชเชเชพ เชเชพเชฐ เชเชจเซเชตเชพเชฏเชฐเซเชจเชฎเซเชจเซเช เชตเซเชฐเชฟเชฏเซเชฌเชฒ เชชเชพเชธ เชเชฐเชตเชพ เชเชตเชถเซเชฏเช เชเซ:
- เชนเซเชฎ - เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชจเซ เชนเซเชฎ เชกเชฟเชฐเซเชเซเชเชฐเซ.
- LOGNAME โ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชฒเซเชเชฟเชจ.
- PATH เช เชชเชพเชฅ เชเซ เชเซเชฏเชพเช เชคเชฎเซ เชชเซเชฐเชฎเชพเชฃเชญเซเชค เชธเชฟเชธเซเชเชฎ เชเชชเชฏเซเชเชฟเชคเชพเช เชถเซเชงเซ เชถเชเซ เชเซ.
- เชถเซเชฒ - เชตเชชเชฐเชพเชฏเซเชฒ เชเชฆเซเชถ เชฆเซเชญเชพเชทเชฟเชฏเชพเชจเซ เชฎเชพเชฐเซเช.
เชจเซเชเชงเชจเซเชฏ เชฐเซเชคเซ, เช เชเชฒเซ เชฎเชพเชเซเชจเชพ เชฎเซเชฒเซเชฏเซ เชเซเชฏเชพเชเชฅเซ เชเชตเซ เชเซ เชคเซ เชตเชฟเชถเซ POSIX เชเชเช เชเชนเซเชคเซเช เชจเชฅเซ.
เชฌเซเชธเซเช เชธเซเชฒเชฐ - Vixie cron 3.0pl1
เชฒเซเชเชชเซเชฐเชฟเชฏ เชเซเชฐเซเชจ เชตเซเชฐเชฟเช เชจเซเชเซเชธเชจเซ เชธเชพเชฎเชพเชจเซเชฏ เชชเซเชฐเซเชตเช Vixie cron 3.0pl1 เชเซ, เชเซ 1992เชฎเชพเช comp.sources.unix เชฎเซเชเชฒเชฟเชเช เชฒเชฟเชธเซเชเชฎเชพเช เชฐเชเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซ เชนเชคเซ. เช เชฎเซ เช เชธเชเชธเซเชเชฐเชฃเชจเซ เชฎเซเชเซเชฏ เชฒเชพเชเซเชทเชฃเชฟเชเชคเชพเชเชจเซ เชตเชงเซ เชตเชฟเชเชคเชตเชพเชฐ เชงเซเชฏเชพเชจเชฎเชพเช เชฒเชเชถเซเช.
เชตเชฟเชเซเชธเซ เชเซเชฐเซเชจ เชฌเซ เชชเซเชฐเซเชเซเชฐเชพเชฎเซเชธเชฎเชพเช เชเชตเซ เชเซ (เชเซเชฐเซเชจ เช เชจเซ เชเซเชฐเซเชจเซเชเชพเชฌ). เชนเชเชฎเซเชถเชจเซ เชเซเชฎ, เชกเชฟเชฎเชจ เชธเชฟเชธเซเชเชฎ เชเชพเชธเซเช เชเซเชฌเชฒ เช เชจเซ เชตเซเชฏเชเซเชคเชฟเชเชค เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชเชพเชฐเซเชฏ เชเซเชทเซเชเชเซเชฎเชพเชเชฅเซ เชเชพเชฐเซเชฏเซ เชตเชพเชเชเชตเชพ เช เชจเซ เชเชฒเชพเชตเชตเชพ เชฎเชพเชเซ เชเชตเชพเชฌเชฆเชพเชฐ เชเซ, เช เชจเซ เชเซเชฐเซเชจเซเชเชพเชฌ เชเชชเชฏเซเชเชฟเชคเชพ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชเซเชทเซเชเชเซเชจเซ เชธเชเชชเชพเชฆเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซ เชเชตเชพเชฌเชฆเชพเชฐ เชเซ.
เชเชพเชฐเซเชฏ เชเซเชทเซเชเช เช เชจเซ เชเซเช เชตเชฃเซ เชซเชพเชเชฒเซ
เชธเซเชชเชฐเชฏเซเชเชฐ เชเชพเชธเซเช เชเซเชฌเชฒ /etc/crontab เชฎเชพเช เชธเซเชฅเชฟเชค เชเซ. เชธเชฟเชธเซเชเชฎ เชเซเชทเซเชเชเชจเซเช เชตเชพเชเซเชฏเชฐเชเชจเชพ เชตเชฟเชเซเชธเซ เชเซเชฐเซเชจเชจเชพ เชตเชพเชเซเชฏเชฐเชเชจเชพเชจเซ เช เชจเซเชฐเซเชช เชเซ, เช เชชเชตเชพเชฆ เชธเชพเชฅเซ เชเซ เชคเซเชฎเชพเชเชจเซ เชเช เซเช เซ เชเซเชฒเชฎ เชคเซ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชจเซเช เชจเชพเชฎ เชธเซเชเชตเซ เชเซ เชเซ เชเซเชจเชพ เชตเชคเซ เชเชพเชฐเซเชฏ เชถเชฐเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซเช เชเซ:
# ะะฐะฟััะบะฐะตััั ะตะถะตะผะธะฝััะฝะพ ะพั ะฟะพะปัะทะพะฒะฐัะตะปั vlad
* * * * * vlad /path/to/exec
เชจเชฟเชฏเชฎเชฟเชค เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชเชพเชฐเซเชฏ เชเซเชทเซเชเชเซ /var/cron/tabs/username เชฎเชพเช เชธเซเชฅเชฟเชค เชเซ เช เชจเซ เชคเซ เช เชตเชพเชเซเชฏเชฐเชเชจเชพเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ. เชเซเชฏเชพเชฐเซ เชคเชฎเซ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชคเชฐเซเชเซ เชเซเชฐเซเชจเซเชเชพเชฌ เชเชชเชฏเซเชเชฟเชคเชพ เชเชฒเชพเชตเซ เชเซ, เชคเซเชฏเชพเชฐเซ เช เชคเซ เชซเชพเชเชฒเซ เชเซ เชเซ เชธเชเชชเชพเชฆเชฟเชค เชฅเชพเชฏ เชเซ.
เชเซเชฐเซเชจเซเชเชพเชฌเชจเซ โโเชเชเซเชธเซเชธ เชงเชฐเชพเชตเชคเชพ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชเชจเซ เชฏเชพเชฆเซเช /var/cron/allow เช เชจเซ /var/cron/deny เชซเชพเชเชฒเซเชฎเชพเช เชฎเซเชจเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชเซเชฏเชพเช เชคเชฎเชพเชฐเซ เชฎเชพเชคเซเชฐ เชเช เช เชฒเช เชฒเชพเชเชจเชฎเชพเช เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชจเชพเชฎ เชฆเชพเชเชฒ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ.
เชตเชฟเชธเซเชคเซเชค เชตเชพเชเซเชฏเชฐเชเชจเชพ
POSIX เชเซเชฐเซเชจเซเชเชพเชฌเชจเซ โโเชคเซเชฒเชจเชพเชฎเชพเช, เชชเซเชฒ เชตเชฟเชเซเชธเซเชจเชพ เชธเซเชฒเซเชฏเซเชถเชจเชฎเชพเช เชเชชเชฏเซเชเชฟเชคเชพเชจเชพ เชเชพเชฐเซเชฏ เชเซเชทเซเชเชเซเชจเชพ เชตเชพเชเซเชฏเชฐเชเชจเชพเชฎเชพเช เชเชฃเชพ เชเชชเชฏเซเชเซ เชซเซเชฐเชซเชพเชฐเซ เชเซ.
เชเช เชจเชตเซเช เชเซเชฌเชฒ เชธเชฟเชจเซเชเซเชเซเชธ เชเชชเชฒเชฌเซเชง เชฌเชจเซเชฏเซเช เชเซ: เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชคเชฎเซ เชจเชพเชฎ เชฆเซเชตเชพเชฐเชพ เช เช เชตเชพเชกเชฟเชฏเชพเชจเชพ เชฆเชฟเชตเชธเซ เช เชฅเชตเชพ เชฎเชนเชฟเชจเชพเชจเซ เชเชฒเซเชฒเซเช เชเชฐเซ เชถเชเซ เชเซ (เชธเซเชฎ, เชฎเชเชเชณ เช เชจเซ เชคเซเชฅเซ เชตเชงเซ):
# ะะฐะฟััะบะฐะตััั ะตะถะตะผะธะฝััะฝะพ ะฟะพ ะฟะพะฝะตะดะตะปัะฝะธะบะฐะผ ะธ ะฒัะพัะฝะธะบะฐะผ ะฒ ัะฝะฒะฐัะต
* * * Jan Mon,Tue /path/to/exec
เชคเชฎเซ เชชเชเชฒเชพเชเชจเซ เชเชฒเซเชฒเซเช เชเชฐเซ เชถเชเซ เชเซ เชเซ เชเซเชจเชพ เชฆเซเชตเชพเชฐเชพ เชเชพเชฐเซเชฏเซ เชถเชฐเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ:
# ะะฐะฟััะบะฐะตััั ั ัะฐะณะพะผ ะฒ ะดะฒะต ะผะธะฝััั
*/2 * * * Mon,Tue /path/to/exec
เชชเชเชฒเชพเช เช เชจเซ เช เชเชคเชฐเชพเชฒเซ เชฎเชฟเชถเซเชฐเชฟเชค เชเชฐเซ เชถเชเชพเชฏ เชเซ:
# ะะฐะฟััะบะฐะตััั ั ัะฐะณะพะผ ะฒ ะดะฒะต ะผะธะฝััั ะฒ ะฟะตัะฒัั
ะดะตัััั ะผะธะฝัั ะบะฐะถะดะพะณะพ ัะฐัะฐ
0-10/2 * * * * /path/to/exec
เชธเชพเชฎเชพเชจเซเชฏ เชตเชพเชเซเชฏเชฐเชเชจเชพ เชฎเชพเชเซ เชธเชพเชนเชเชฟเช เชตเชฟเชเชฒเซเชชเซ เชธเชฎเชฐเซเชฅเชฟเชค เชเซ (เชฐเซเชฌเซเช, เชตเชพเชฐเซเชทเชฟเช, เชตเชพเชฐเซเชทเชฟเช, เชฎเชพเชธเชฟเช, เชธเชพเชชเซเชคเชพเชนเชฟเช, เชฆเซเชจเชฟเช, เชฎเชงเซเชฏเชฐเชพเชคเซเชฐเชฟ, เชเชฒเชพเชเชฆเซเช ):
# ะะฐะฟััะบะฐะตััั ะฟะพัะปะต ะฟะตัะตะทะฐะณััะทะบะธ ัะธััะตะผั
@reboot /exec/on/reboot
# ะะฐะฟััะบะฐะตััั ัะฐะท ะฒ ะดะตะฝั
@daily /exec/daily
# ะะฐะฟััะบะฐะตััั ัะฐะท ะฒ ัะฐั
@hourly /exec/daily
เชเชพเชฐเซเชฏ เช เชฎเชฒเซเชเชฐเชฃ เชตเชพเชคเชพเชตเชฐเชฃ
เชตเชฟเชเซเชธเซ เชเซเชฐเซเชจ เชคเชฎเชจเซ เชเชพเชฒเซ เชฐเชนเซเชฒ เชเชชเซเชฒเชฟเชเซเชถเชจเซเชธเชจเซเช เชตเชพเชคเชพเชตเชฐเชฃ เชฌเชฆเชฒเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ.
เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชเชฒเซ USER, LOGNAME เช
เชจเซ HOME เชซเชเซเชค เชกเชฟเชฎเชจ เชฆเซเชตเชพเชฐเชพ เชชเซเชฐเชฆเชพเชจ เชเชฐเชตเชพเชฎเชพเช เชเชตเชคเชพเช เชจเชฅเซ, เชชเชฐเชเชคเซ เชซเชพเชเชฒเชฎเชพเชเชฅเซ เชฒเซเชตเชพเชฎเชพเช เชเชตเซเชฏเชพ เชเซ.
เชเซเชเชฒเชพเช เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชเชฒเซ (เชธเซเชฅเซ เชเชพเชธ เชเชฐเซเชจเซ SHELL เช เชจเซ HOME)เชจเซ เชเชชเชฏเซเช เชเซเชฐเซเชจ เชฆเซเชตเชพเชฐเชพ เชเชพเชฐเซเชฏ เชเชฒเชพเชตเชตเชพ เชฎเชพเชเซ เชฅเชพเชฏ เชเซ. เชเชธเซเชเชฎ เชเชพเชฐเซเชฏเซ เชเชฒเชพเชตเชตเชพ เชฎเชพเชเซ เชฎเชพเชจเช sh เชจเซ เชฌเชฆเชฒเซ bash เชจเซ เชเชชเชฏเซเช เชเชตเซ เชฆเซเชเชพเชฏ เชเซ เชคเซ เช เชนเซเช เชเซ:
SHELL=/bin/bash
HOME=/tmp/
# exec ะฑัะดะตั ะทะฐะฟััะตะฝ bash-ะตะผ ะฒ /tmp/
* * * * * /path/to/exec
เชเชเชฐเซ, เชเซเชทเซเชเชเชฎเชพเช เชตเซเชฏเชพเชเซเชฏเชพเชฏเชฟเชค เชคเชฎเชพเชฎ เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชเชฒเซ (เชเซเชฐเซเชจ เชฆเซเชตเชพเชฐเชพ เชเชชเชฏเซเชเชฎเชพเช เชฒเซเชตเชพเชฏ เชเซ เช เชฅเชตเชพ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชฆเซเชตเชพเชฐเชพ เชเชฐเซเชฐเซ เชเซ) เชเชพเชฒเซ เชฐเชนเซเชฒ เชเชพเชฐเซเชฏเชฎเชพเช เชชเชธเชพเชฐ เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ.
เชซเชพเชเชฒเซเชจเซ เชธเชเชชเชพเชฆเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซ, เชเซเชฐเซเชจเซเชเชพเชฌ VISUAL เช เชฅเชตเชพ EDITOR เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชตเซเชฐเซเชเชฌเชฒเชฎเชพเช เชเชฒเซเชฒเซเชเชฟเชค เชเชกเชฟเชเชฐเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ. เชเซ เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชเซเชฏเชพเช เชเซเชฐเซเชจเซเชเชพเชฌ เชเชฒเชพเชตเชตเชพเชฎเชพเช เชเชตเซเชฏเซเช เชนเชคเซเช เชคเซเชฏเชพเช เช เชเชฒเซเชจเซ เชตเซเชฏเชพเชเซเชฏเชพเชฏเชฟเชค เชเชฐเซเชฏเชพ เชจเชฅเซ, เชคเซ เชชเชเซ "/usr/ucb/vi" เชจเซ เชเชชเชฏเซเช เชฅเชพเชฏ เชเซ (เชฏเซเชธเซเชฌเซ เชเชฆเชพเช เชฏเซเชจเชฟเชตเชฐเซเชธเชฟเชเซ เชเชซ เชเซเชฒเชฟเชซเซเชฐเซเชจเชฟเชฏเชพ, เชฌเชฐเซเชเชฒเซ เชเซ).
เชกเซเชฌเชฟเชฏเชจ เช เชจเซ เชเชฌเซเชจเซเชเซ เชชเชฐ เชเซเชฐเซเชจ
เชกเซเชฌเชฟเชฏเชจ เช
เชจเซ เชกเซเชฐเชฟเชตเซเชเชฟเชต เชกเชฟเชธเซเชเซเชฐเชฟเชฌเซเชฏเซเชถเชจเชจเชพ เชตเชฟเชเชพเชธเชเชฐเซเชคเชพเชเช เชฐเชฟเชฒเซเช เชเชฐเซเชฏเซเช เชเซ
เชเชเชพ เชงเซเชฏเชพเชจเชชเชพเชคเซเชฐ, เชชเชฐเชเชคเซ เชฎเซเชฐเซเชค เชซเซเชฐเชซเชพเชฐเซเชฎเชพเช เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชซเชพเชเชฒเซ เช เชจเซ เชเชพเชฐเซเชฏ เชเซเชทเซเชเชเซเชจเซเช เชธเซเชฅเชพเชจ เชถเชพเชฎเซเชฒ เชเซ.
เชกเซเชฌเชฟเชฏเชจเชฎเชพเช เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชเซเชทเซเชเชเซ /var/spool/cron/crontabs เชกเชฟเชฐเซเชเซเชเชฐเซเชฎเชพเช เชธเซเชฅเชฟเชค เชเซ, เชธเชฟเชธเซเชเชฎ เชเซเชทเซเชเช เชนเชเซ เชชเชฃ เชเซ - /etc/crontab เชฎเชพเช. เชกเซเชฌเชฟเชฏเชจ เชชเซเชเซเช-เชตเชฟเชถเชฟเชทเซเช เชเชพเชฐเซเชฏ เชเซเชทเซเชเชเซ /etc/cron.d เชฎเชพเช เชฎเซเชเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชเซเชฏเชพเชเชฅเซ เชเซเชฐเซเชจ เชกเชฟเชฎเชจ เชคเซเชฎเชจเซ เชเชชเชฎเซเชณเซ เชตเชพเชเชเซ เชเซ. เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชเชเซเชธเซเชธ เชจเชฟเชฏเชเชคเซเชฐเชฃ /etc/cron.allow เช เชจเซ /etc/cron.deny เชซเชพเชเชฒเซ เชฆเซเชตเชพเชฐเชพ เชจเชฟเชฏเชเชคเซเชฐเชฟเชค เชฅเชพเชฏ เชเซ.
เชกเชฟเชซเซเชฒเซเช เชถเซเชฒ เชนเชเซ เชชเชฃ /bin/sh เชเซ, เชเซ เชกเซเชฌเชฟเชฏเชจเชฎเชพเช เชเช เชจเชพเชจเซ POSIX- เชธเซเชธเชเชเชค เชถเซเชฒ เชเซ
เชกเซเชฌเชฟเชฏเชจเชจเชพ เชจเชตเซเชจเชคเชฎ เชธเชเชธเซเชเชฐเชฃเซเชฎเชพเช เชเซเชฐเซเชจ เชชเซเชคเซ systemd เชฆเซเชตเชพเชฐเชพ เชฒเซเชจเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เช เชจเซ เชฒเซเชจเซเช เชฐเซเชชเชฐเซเชเชพเชเชเชจ /lib/systemd/system/cron.service เชฎเชพเช เชเซเช เชถเชเชพเชฏ เชเซ. เชธเซเชตเชพ เชฐเซเชชเชฐเซเชเชพเชเชเชจเชฎเชพเช เชตเชฟเชถเซเชท เชเชเช เชจเชฅเซ; เชเซเชเชชเชฃ เชตเชงเซ เชธเซเชเซเชทเซเชฎ เชเชพเชฐเซเชฏ เชตเซเชฏเชตเชธเซเชฅเชพเชชเชจ เชฆเชฐเซเช เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชจเชพ เชเซเชฐเซเชจเซเชเชพเชฌเชฎเชพเช เชธเซเชงเชพ เชเชพเชนเซเชฐ เชเชฐเชพเชฏเซเชฒ เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชเชฒ เชฆเซเชตเชพเชฐเชพ เชเชฐเซ เชถเชเชพเชฏ เชเซ.
RedHat, Fedora เช เชจเซ CentOS เชชเชฐ cronie
เชฎเซเชณเชญเซเชค เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชธเชพเชฎเชพเชจเซเชฏ เชธเซเชฅเชณเซเช เชเซ: เชธเชฟเชธเซเชเชฎ เชเซเชทเซเชเช /etc/crontab เชฎเชพเช เชเซ, เชชเซเชเซเชเซ เชคเซเชฎเชจเชพ เชเซเชทเซเชเชเซเชจเซ /etc/cron.d เชฎเชพเช เชฎเซเชเซ เชเซ, เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชเซเชทเซเชเชเซ /var/spool/cron/crontabs เชฎเชพเช เชเชพเชฏ เชเซ.
เชกเชฟเชฎเชจ systemd เชจเชฟเชฏเชเชคเซเชฐเชฃ เชนเซเช เชณ เชเชพเชฒเซ เชเซ, เชธเซเชตเชพ เชฐเซเชชเชฐเซเชเชพเชเชเชจ /lib/systemd/system/crond.service เชเซ.
Red Hat-เชเซเชตเชพ เชตเชฟเชคเชฐเชฃเซ เชชเชฐ, /bin/sh เช เชธเซเชเชพเชฐเซเชเช เชช เชชเชฐ เชฎเซเชณเชญเซเชค เชฐเซเชคเซ เชตเชชเชฐเชพเชฏ เชเซ, เชเซ เชชเซเชฐเชฎเชพเชฃเชญเซเชค เชฌเซเชถ เชเซ. เช เชจเซเชเชงเชตเซเช เชเซเชเช เชเซ เชเซเชฏเชพเชฐเซ /bin/sh เชฆเซเชตเชพเชฐเชพ เชเซเชฐเซเชจ เชเซเชฌเซเชธ เชเชฒเชพเชตเซ เชฐเชนเซเชฏเชพ เชนเซเชฏ, เชคเซเชฏเชพเชฐเซ เชฌเซเชถ เชถเซเชฒ POSIX- เชธเซเชธเชเชเชค เชฎเซเชกเชฎเชพเช เชถเชฐเซ เชฅเชพเชฏ เชเซ เช เชจเซ เชฌเชฟเชจ-เชเชจเซเชเชฐเซเชเซเชเชฟเชต เชฎเซเชกเชฎเชพเช เชเชพเชฒเชคเชพ เชเซเชเชชเชฃ เชตเชงเชพเชฐเชพเชจเชพ เชฐเซเชชเชฐเซเชเชพเชเชเชจเชจเซ เชตเชพเชเชเชคเซเช เชจเชฅเซ.
SLES เช เชจเซ openSUSE เชฎเชพเช เชเซเชฐเซเชจเซ
เชเชฐเซเชฎเชจ เชกเชฟเชธเซเชเซเชฐเชฟเชฌเซเชฏเซเชถเชจ SLES เช เชจเซ เชคเซเชจเชพ เชกเซเชฐเชฟเชตเซเชเชฟเชต openSUSE เชธเชฎเชพเชจ เชเซเชฐเซเชจเซเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ. เช เชนเซเช เชกเชฟเชฎเชจ เชชเชฃ systemd เชนเซเช เชณ เชฒเซเชจเซเช เชฅเชฏเซเชฒ เชเซ, เชธเซเชตเชพ เชฐเซเชชเชฐเซเชเชพเชเชเชจ /usr/lib/systemd/system/cron.service เชฎเชพเช เชธเซเชฅเชฟเชค เชเซ. เชฐเซเชชเชฐเซเชเชพเชเชเชจ: /etc/crontab, /etc/cron.d, /var/spool/cron/tabs. /bin/sh เช เช เชฌเซเชถ เชเซ เชเซ POSIX- เชธเซเชธเชเชเชค เชฌเชฟเชจ-เชเชจเซเชเชฐเซเชเซเชเชฟเชต เชฎเซเชกเชฎเชพเช เชเชพเชฒเซ เชเซ.
เชตเชฟเชเซเชธเซ เชเซเชฐเซเชจ เชเชชเชเชฐเชฃ
เชตเชฟเชเซเชธเซ เชเซเชฐเซเชจเชจเซ เชธเชฐเชเชพเชฎเชฃเซเชฎเชพเช เชเซเชฐเซเชจเชจเชพ เชเชงเซเชจเชฟเช เชตเชเชถเชเซ เชงเชฐเชฎเซเชณเชฅเซ เชฌเชฆเชฒเชพเชฏเชพ เชจเชฅเซ, เชชเชฐเชเชคเซ เชคเซเชฎ เชเชคเชพเช เชจเชตเซ เชธเซเชตเชฟเชงเชพเช เชชเซเชฐเชพเชชเซเชค เชเชฐเซ เชเซ เชเซ เชชเซเชฐเซเชเซเชฐเชพเชฎเชจเชพ เชธเชฟเชฆเซเชงเชพเชเชคเซเชจเซ เชธเชฎเชเชตเชพ เชฎเชพเชเซ เชเชฐเซเชฐเซ เชจเชฅเซ. เชเชฎเชพเชเชจเชพ เชเชฃเชพ เชเชเซเชธเซเชเซเชเชถเชจ เชเชฐเชพเชฌ เชฐเซเชคเซ เชกเชฟเชเชพเชเชจ เชเชฐเซเชฒเชพ เชเซ เช เชจเซ เชเซเชกเชจเซ เชเซเชเชเชตเชฃเชฎเชพเช เชฎเซเชเซ เชเซ. เชชเซเชฒ เชตเชฟเชเซเชธเซเชจเซ เชฎเซเชณ เชเซเชฐเซเชจ เชธเซเชฐเซเชธ เชเซเชก เชตเชพเชเชเซเชจเซ เชเชจเชเชฆ เชฅเชฏเซ.
เชคเซเชฅเซ, เชฎเซเช เชตเชฟเชเชพเชธเชจเซ เชฌเชเชจเซ เชถเชพเชเชพเชเชฎเชพเช เชธเชพเชฎเชพเชจเซเชฏ เชเซเชฐเซเชจ เชชเซเชฐเซเชเซเชฐเชพเชฎเชจเชพ เชเชฆเชพเชนเชฐเชฃเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเซเชฐเซเชจ เชเชชเชเชฐเชฃเชจเซเช เชตเชฟเชถเซเชฒเซเชทเชฃ เชเชฐเชตเชพเชจเซเช เชจเชเซเชเซ เชเชฐเซเชฏเซเช - Vixie cron 3.0pl1. เชตเชพเชเชเชจเชจเซ เชเชเชฟเชฒ เชฌเชจเชพเชตเชคเชพ ifdefs เชจเซ เชฆเซเชฐ เชเชฐเซเชจเซ เช เชจเซ เชจเชพเชจเซ เชตเชฟเชเชคเซเชจเซ เช เชตเชเชฃเซเชจเซ เชนเซเช เชเชฆเชพเชนเชฐเชฃเซเชจเซ เชธเชฐเชณ เชฌเชจเชพเชตเซเชถ.
เชฐเชพเชเซเชทเชธเชจเชพ เชเชพเชฐเซเชฏเชจเซ เชเชฃเชพ เชคเชฌเชเซเชเชพเชฎเชพเช เชตเชนเซเชเชเซ เชถเชเชพเชฏ เชเซ:
- เชเชพเชฐเซเชฏเชเซเชฐเชฎเชจเซ เชถเชฐเซเชเชค เชเชฐเซ เชฐเชนเซเชฏเชพ เชเซเช.
- เชเชฒเชพเชตเชตเชพ เชฎเชพเชเซเชจเชพ เชเชพเชฐเซเชฏเซเชจเซ เชธเซเชเชฟ เชเชเชคเซเชฐเชฟเชค เช เชจเซ เช เชชเชกเซเช เชเชฐเชตเซ.
- เชฎเซเชเซเชฏ เชเซเชฐเซเชจ เชฒเซเชช เชเชพเชฒเซ เชฐเชนเซเชฏเซเช เชเซ.
- เชเช เชเชพเชฐเซเชฏ เชถเชฐเซ เชเชฐเซ.
เชเชพเชฒเซ เชคเซเชฎเชจเซ เชเซเชฐเชฎเชฎเชพเช เชเซเชเช.
เชเชฐเชเชญ
เชเซเชฏเชพเชฐเซ เชถเชฐเซ เชฅเชพเชฏ, เชคเซเชฏเชพเชฐเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชจเซ เชฆเชฒเซเชฒเซ เชคเชชเชพเชธเซเชฏเชพ เชชเชเซ, เชเซเชฐเซเชจ SIGCHLD เช เชจเซ SIGHUP เชธเชฟเชเซเชจเชฒ เชนเซเชจเซเชกเชฒเชฐเซเชธ เชเชจเซเชธเซเชเซเชฒ เชเชฐเซ เชเซ. เชชเซเชฐเชฅเชฎ เชฌเชพเชณเช เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชจเชพ เชธเชฎเชพเชชเซเชคเชฟ เชตเชฟเชถเซ เชฒเซเช เชเชจเซเชเซเชฐเซ เชเชฐเซ เชเซ, เชฌเซเชเซ เชฒเซเช เชซเชพเชเชฒเชจเชพ เชซเชพเชเชฒ เชตเชฐเซเชฃเชจเชเชฐเซเชคเชพเชจเซ เชฌเชเชง เชเชฐเซ เชเซ:
signal(SIGCHLD, sigchld_handler);
signal(SIGHUP, sighup_handler);
เชเซเชฐเซเชจ เชกเชฟเชฎเชจ เชนเชเชฎเซเชถเชพ เชธเชฟเชธเซเชเชฎ เชชเชฐ เชเชเชฒเชพ เชเชพเชฒเซ เชเซ, เชฎเชพเชคเซเชฐ เชธเซเชชเชฐเชฏเซเชเชฐ เชคเชฐเซเชเซ เช เชจเซ เชฎเซเชเซเชฏ เชเซเชฐเซเชจ เชกเชฟเชฐเซเชเซเชเชฐเซเชฎเชพเชเชฅเซ. เชจเซเชเซเชจเชพ เชเซเชฒเซเชธ เชกเชฟเชฎเชจ เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชจเซ PID เชธเชพเชฅเซ เชฒเซเช เชซเชพเชเชฒ เชฌเชจเชพเชตเซ เชเซ, เชเชพเชคเชฐเซ เชเชฐเซ เชเซ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชธเชพเชเซ เชเซ เช เชจเซ เชตเชฐเซเชคเชฎเชพเชจ เชกเชฟเชฐเซเชเซเชเชฐเซเชจเซ เชฎเซเชเซเชฏเชฎเชพเช เชฌเชฆเชฒเซ:
acquire_daemonlock(0);
set_cron_uid();
set_cron_cwd();
เชกเชฟเชซเซเชฒเซเช เชชเชพเชฅ เชธเซเช เชเชฐเซเชฒ เชเซ, เชเซเชจเซ เชเชชเชฏเซเช เชชเซเชฐเชเซเชฐเชฟเชฏเชพเช เชถเชฐเซ เชเชฐเชคเซ เชตเชเชคเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ:
setenv("PATH", _PATH_DEFPATH, 1);
เชชเชเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ "เชกเชฟเชฎเซเชจเชพเชเชเซเชก" เชเซ: เชคเซ เชซเซเชฐเซเชเชจเซ เชเซเชฒ เชเชฐเซเชจเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชจเซ เชเชพเชเชฒเซเชก เชเซเชชเชฟ เชฌเชจเชพเชตเซ เชเซ เช เชจเซ เชเชพเชเชฒเซเชก เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชฎเชพเช เชจเชตเซเช เชธเชคเซเชฐ (เชธเซเชเชธเชฟเชกเชจเซ เชเซเชฒ เชเชฐเซเชจเซ) เชฌเชจเชพเชตเซ เชเซ. เชชเชฟเชคเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชจเซ เชนเชตเซ เชเชฐเซเชฐ เชจเชฅเซ, เช เชจเซ เชคเซ เชฌเชนเชพเชฐ เชจเซเชเชณเซ เชเชพเชฏ เชเซ:
switch (fork()) {
case -1:
/* ะบัะธัะธัะตัะบะฐั ะพัะธะฑะบะฐ ะธ ะทะฐะฒะตััะตะฝะธะต ัะฐะฑะพัั */
exit(0);
break;
case 0:
/* ะดะพัะตัะฝะธะน ะฟัะพัะตัั */
(void) setsid();
break;
default:
/* ัะพะดะธัะตะปััะบะธะน ะฟัะพัะตัั ะทะฐะฒะตััะฐะตั ัะฐะฑะพัั */
_exit(0);
}
เชชเชฟเชคเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชจเซ เชธเชฎเชพเชชเซเชค เชเชฐเชตเชพเชฅเซ เชฒเซเช เชซเชพเชเชฒ เชชเชฐ เชฒเซเช เชฐเชฟเชฒเซเช เชฅเชพเชฏ เชเซ. เช เชเชชเชฐเชพเชเชค, เชฌเชพเชณเชเชจเซ เชซเชพเชเชฒเชฎเชพเช PID เช เชชเชกเซเช เชเชฐเชตเซเช เชเชฐเซเชฐเซ เชเซ. เช เชชเชเซ, เชเชพเชฐเซเชฏ เชกเซเชเชพเชฌเซเช เชญเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ:
/* ะฟะพะฒัะพัะฝัะน ะทะฐั
ะฒะฐั ะปะพะบะฐ */
acquire_daemonlock(0);
/* ะะฐะฟะพะปะฝะตะฝะธะต ะะ */
database.head = NULL;
database.tail = NULL;
database.mtime = (time_t) 0;
load_database(&database);
เชชเชเซ เชเซเชฐเซเชจ เชฎเซเชเซเชฏ เชเชพเชฐเซเชฏ เชเชเซเชฐ เชชเชฐ เชเชเชณ เชตเชงเซ เชเซ. เชชเชฐเชเชคเซ เชคเซ เชชเชนเซเชฒเชพเช, เชเชพเชฐเซเชฏ เชธเซเชเชฟ เชฒเซเชก เชเชฐเชตเชพ เชชเชฐ เชเช เชจเชเชฐ เชจเชพเชเชตเซ เชฏเซเชเซเชฏ เชเซ.
เชเชพเชฐเซเชฏ เชธเซเชเชฟ เชเชเชคเซเชฐเชฟเชค เช เชจเซ เช เชชเชกเซเช เชเชฐเชตเซ
load_database เชเชพเชฐเซเชฏ เชเชพเชฐเซเชฏเซเชจเซ เชฏเชพเชฆเซ เชฒเซเชก เชเชฐเชตเชพ เชฎเชพเชเซ เชเชตเชพเชฌเชฆเชพเชฐ เชเซ. เชคเซ เชฎเซเชเซเชฏ เชธเชฟเชธเซเชเชฎ เชเซเชฐเซเชจเซเชเชพเชฌ เช เชจเซ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชซเชพเชเชฒเซ เชธเชพเชฅเซ เชกเชฟเชฐเซเชเซเชเชฐเซเชจเซ เชคเชชเชพเชธเซ เชเซ. เชเซ เชซเชพเชเชฒเซ เช เชจเซ เชกเชฟเชฐเซเชเซเชเชฐเซ เชฌเชฆเชฒเชพเช เชจเชฅเซ, เชคเซ เชเชพเชฐเซเชฏ เชธเซเชเชฟ เชซเชฐเซเชฅเซ เชตเชพเชเชเชตเชพเชฎเชพเช เชเชตเชถเซ เชจเชนเซเช. เชจเชนเชฟเชเชคเชฐ, เชเชพเชฐเซเชฏเซเชจเซ เชจเชตเซ เชธเซเชเชฟ เชฐเชเชตเชพเชจเซเช เชถเชฐเซ เชฅเชพเชฏ เชเซ.
เชตเชฟเชถเชฟเชทเซเช เชซเชพเชเชฒ เช เชจเซ เชเซเชทเซเชเช เชจเชพเชฎเซ เชธเชพเชฅเซ เชธเชฟเชธเซเชเชฎ เชซเชพเชเชฒ เชฒเซเชก เชเชฐเซ เชฐเชนเซเชฏเซเช เชเซ:
/* ะตัะปะธ ัะฐะนะป ัะธััะตะผะฝะพะน ัะฐะฑะปะธัั ะธะทะผะตะฝะธะปัั, ะฟะตัะตัะธััะฒะฐะตะผ */
if (syscron_stat.st_mtime) {
process_crontab("root", "*system*",
SYSCRONTAB, &syscron_stat,
&new_db, old_db);
}
เชฒเซเชชเชฎเชพเช เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชเซเชทเซเชเชเซ เชฒเซเชก เชเชฐเซ เชฐเชนเซเชฏเชพเช เชเซ:
while (NULL != (dp = readdir(dir))) {
char fname[MAXNAMLEN+1],
tabname[MAXNAMLEN+1];
/* ัะธัะฐัั ัะฐะนะปั ั ัะพัะบะพะน ะฝะต ะฝะฐะดะพ*/
if (dp->d_name[0] == '.')
continue;
(void) strcpy(fname, dp->d_name);
sprintf(tabname, CRON_TAB(fname));
process_crontab(fname, fname, tabname,
&statbuf, &new_db, old_db);
}
เชเซ เชชเชเซ เชเซเชจเชพ เชกเซเชเชพเชฌเซเชเชจเซ เชจเชตเชพ เชธเชพเชฅเซ เชฌเชฆเชฒเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
เชเชชเชฐเชจเชพ เชเชฆเชพเชนเชฐเชฃเซเชฎเชพเช, process_crontab เชซเชเชเซเชถเชจ เชเซเชฒ เชเชเชพเชธเซ เชเซ เชเซ เชเซเชฌเชฒ เชซเชพเชเชฒเชจเชพ เชจเชพเชฎ เชธเชพเชฅเซ เชฎเซเชณ เชเชพเชคเซ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เช เชธเซเชคเชฟเชคเซเชตเชฎเชพเช เชเซ (เชธเชฟเชตเชพเชฏ เชเซ เชคเซ เชธเซเชชเชฐเชฏเซเชเชฐ เชนเซเชฏ) เช เชจเซ เชชเชเซ load_user เชจเซ เชเซเชฒ เชเชฐเซ เชเซ. เชฌเชพเชฆเชฎเชพเช เชชเชนเซเชฒเซเชฅเซ เช เชซเชพเชเชฒเชจเซ เชตเชพเชเซเชฏ เชฆเซเชตเชพเชฐเชพ เชตเชพเชเชเซ เชเซ:
while ((status = load_env(envstr, file)) >= OK) {
switch (status) {
case ERR:
free_user(u);
u = NULL;
goto done;
case FALSE:
e = load_entry(file, NULL, pw, envp);
if (e) {
e->next = u->crontab;
u->crontab = e;
}
break;
case TRUE:
envp = env_set(envp, envstr);
break;
}
}
เช เชนเซเช, load_env / env_set เชซเชเชเซเชถเชจเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชตเซเชฐเซเชเชฌเชฒ เชธเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ (เชซเซเชฐเซเชฎ VAR=เชตเซเชฒเซเชฏเซเชจเซ เชฐเซเชเชพเช), เช เชฅเชตเชพ load_entry เชซเชเชเซเชถเชจเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเชพเชฐเซเชฏ เชตเชฐเซเชฃเชจ เชตเชพเชเชเชตเชพเชฎเชพเช เชเชตเซ เชเซ (* * * * * /path/to/exec).
เชฒเซเชก_เชเชจเซเชเซเชฐเซ เชชเชฐเชค เชเชฐเซ เชเซ เชคเซ เชเชจเซเชเซเชฐเซ เชเชจเซเชเชฟเชเซ เช เชฎเชพเชฐเซเช เชเชพเชฐเซเชฏ เชเซ, เชเซ เชเชพเชฐเซเชฏเซเชจเซ เชธเชพเชฎเชพเชจเซเชฏ เชธเซเชเชฟเชฎเชพเช เชฎเซเชเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เชซเชเชเซเชถเชจ เชชเซเชคเซ เช เชเชพเชเชฎ เชซเซเชฐเซเชฎเซเชเชจเซเช เชตเชฐเซเชฌเซเช เชชเชพเชฐเซเชธเชฟเชเช เชเชฐเซ เชเซ, เชชเชฐเชเชคเซ เช เชฎเชจเซ เชเชจเซเชตเชพเชฏเชฐเซเชจเชฎเซเชจเซเช เชตเซเชฐเชฟเชฏเซเชฌเชฒเซเชธ เช เชจเซ เชเชพเชธเซเช เชฒเซเชจเซเช เชชเซเชฐเชพเชฎเซเชเชฐเซเชธเชจเซ เชฐเชเชจเชพเชฎเชพเช เชตเชงเซ เชฐเชธ เชเซ:
/* ะฟะพะปัะทะพะฒะฐัะตะปั ะธ ะณััะฟะฟะฐ ะดะปั ะทะฐะฟััะบะฐ ะทะฐะดะฐัะธ ะฑะตััััั ะธะท passwd*/
e->uid = pw->pw_uid;
e->gid = pw->pw_gid;
/* ัะตะปะป ะฟะพ ัะผะพะปัะฐะฝะธั (/bin/sh), ะตัะปะธ ะฟะพะปัะทะพะฒะฐัะตะปั ะฝะต ัะบะฐะทะฐะป ะดััะณะพะต */
e->envp = env_copy(envp);
if (!env_get("SHELL", e->envp)) {
sprintf(envstr, "SHELL=%s", _PATH_BSHELL);
e->envp = env_set(e->envp, envstr);
}
/* ะดะพะผะฐัะฝัั ะดะธัะตะบัะพัะธั */
if (!env_get("HOME", e->envp)) {
sprintf(envstr, "HOME=%s", pw->pw_dir);
e->envp = env_set(e->envp, envstr);
}
/* ะฟััั ะดะปั ะฟะพะธัะบะฐ ะฟัะพะณัะฐะผะผ */
if (!env_get("PATH", e->envp)) {
sprintf(envstr, "PATH=%s", _PATH_DEFPATH);
e->envp = env_set(e->envp, envstr);
}
/* ะธะผั ะฟะพะปัะทะพะฒัะตะปั ะฒัะตะณะดะฐ ะธะท passwd */
sprintf(envstr, "%s=%s", "LOGNAME", pw->pw_name);
e->envp = env_set(e->envp, envstr);
เชฎเซเชเซเชฏ เชฒเซเชช เชเชพเชฐเซเชฏเซเชจเซ เชตเชฐเซเชคเชฎเชพเชจ เชธเซเชเชฟ เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเซ เชเซ.
เชฎเซเชเซเชฏ เชฒเซเชช
เชตเชฐเซเชเชจ 7 เชฏเซเชจเชฟเชเซเชธเชจเซเช เชฎเซเชณ เชเซเชฐเซเชจ เชเชเชฆเชฎ เชธเชฐเชณ เชฐเซเชคเซ เชเชพเชฎ เชเชฐเซ เชเซ: เชคเซเชฃเซ เชฒเซเชชเชฎเชพเช เชเซเช เชตเชฃเซเชจเซ เชซเชฐเซเชฅเซ เชตเชพเชเชเซ, เชธเซเชชเชฐเชฏเซเชเชฐ เชคเชฐเซเชเซ เชตเชฐเซเชคเชฎเชพเชจ เชฎเชฟเชจเชฟเชเชจเชพ เชเชพเชฐเซเชฏเซเชจเซ เชถเชฐเซ เชเชฐเซเชฏเชพ, เช เชจเซ เชเชเชฒเซ เชฎเชฟเชจเชฟเชเชจเซ เชถเชฐเซเชเชค เชธเซเชงเซ เชธเซเช เชเชฏเชพ. เชเซเชจเชพ เชฎเชถเซเชจเซ เชชเชฐ เช เชธเชฐเชณ เช เชญเชฟเชเชฎ เชฎเชพเชเซ เชเชฃเชพ เชฌเชงเชพ เชธเชเชธเชพเชงเชจเซเชจเซ เชเชฐเซเชฐ เชนเชคเซ.
SysV เชฎเชพเช เชตเซเชเชฒเซเชชเชฟเช เชธเชเชธเซเชเชฐเชฃเชจเซ เชฆเชฐเชเชพเชธเซเชค เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชนเชคเซ, เชเซเชฎเชพเช เชกเชฟเชฎเชจ เชเซเชฏเชพเช เชคเซ เชจเชเซเชเชจเซ เชฎเชฟเชจเชฟเช เชเซ เชเซเชจเชพ เชฎเชพเชเซ เชเชพเชฐเซเชฏ เชตเซเชฏเชพเชเซเชฏเชพเชฏเชฟเชค เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซเช เชนเชคเซเช เชคเซเชฏเชพเช เชธเซเชงเซ เช เชฅเชตเชพ 30 เชฎเชฟเชจเชฟเช เชฎเชพเชเซ เชธเซเช เชเชพเชฏ เชเซ. เช เชฎเซเชกเชฎเชพเช เชฐเซเชชเชฐเซเชเชพเชเชเชจเชจเซ เชซเชฐเซเชฅเซ เชตเชพเชเชเชตเชพ เช เชจเซ เชเชพเชฐเซเชฏเซเชจเซ เชคเชชเชพเชธเชตเชพ เชฎเชพเชเซ เชเชเชพ เชธเชเชธเชพเชงเชจเซเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซ เชนเชคเซ, เชชเชฐเชเชคเซ เชเชพเชฐเซเชฏเซเชจเซ เชธเซเชเชฟเชจเซ เชเชกเชชเชฅเซ เช เชชเชกเซเช เชเชฐเชตเซ เช เชธเซเชตเชฟเชงเชพเชเชจเช เชฌเชจเซ เชนเชคเซ.
เชตเชฟเชเซเชธเซ เชเซเชฐเซเชจ เชเช เชฎเชฟเชจเชฟเชเชฎเชพเช เชเชเชตเชพเชฐ เชเชพเชฐเซเชฏ เชธเซเชเชฟเช เชคเชชเชพเชธเชตเชพ เชชเชฐ เชชเชพเชเซ เชซเชฐเซเชฏเซ, เชธเชฆเชญเชพเชเซเชฏเซ 80 เชจเชพ เชฆเชพเชฏเชเชพเชจเชพ เช เชเชค เชธเซเชงเซเชฎเชพเช เชชเซเชฐเชฎเชพเชฃเชญเซเชค เชฏเซเชจเชฟเชเซเชธ เชฎเชถเซเชจเซ เชชเชฐ เชจเซเชเชงเชชเชพเชคเซเชฐ เชฐเซเชคเซ เชตเชงเซ เชธเชเชธเชพเชงเชจเซ เชนเชคเชพ:
/* ะฟะตัะฒะธัะฝะฐั ะทะฐะณััะทะบะฐ ะทะฐะดะฐั */
load_database(&database);
/* ะทะฐะฟัััะธัั ะทะฐะดะฐัะธ, ะฟะพััะฐะฒะปะตะฝะฝัะต ะบ ะฒัะฟะพะปะฝะตะฝะธั ะฟะพัะปะต ะฟะตัะตะทะฐะณััะทะบะธ ัะธััะตะผั */
run_reboot_jobs(&database);
/* ัะดะตะปะฐัั TargetTime ะฝะฐัะฐะปะพะผ ะฑะปะธะถะฐะนัะตะน ะผะธะฝััั */
cron_sync();
while (TRUE) {
/* ะฒัะฟะพะปะฝะธัั ะทะฐะดะฐัะธ, ะฟะพัะปะต ัะตะณะพ ัะฟะฐัั ะดะพ TargetTime ั ะฟะพะฟัะฐะฒะบะพะน ะฝะฐ ะฒัะตะผั, ะฟะพััะฐัะตะฝะฝะพะต ะฝะฐ ะทะฐะดะฐัะธ */
cron_sleep();
/* ะฟะตัะตัะธัะฐัั ะบะพะฝัะธะณััะฐัะธั */
load_database(&database);
/* ัะพะฑัะฐัั ะทะฐะดะฐัะธ ะดะปั ะดะฐะฝะฝะพะน ะผะธะฝััั */
cron_tick(&database);
/* ะฟะตัะตะฒะตััะธ TargetTime ะฝะฐ ะฝะฐัะฐะปะพ ัะปะตะดัััะตะน ะผะธะฝััั */
TargetTime += 60;
}
เชเซเชฐเซเชจ_เชธเซเชฒเซเชช เชซเชเชเซเชถเชจ เชธเซเชงเชพ เช เชเชพเชฐเซเชฏเซเชจเซ เชเชฒเชพเชตเชตเชพเชฎเชพเช เชธเชพเชฎเซเชฒ เชเซ, เชเซเชฌ_เชฐเชจเชเซเชฏเซ (เชเชพเชฐเซเชฏเซเชจเซ เชเชฃเชคเชฐเซ เชเชฐเซ เช เชจเซ เชเชฒเชพเชตเซ) เช เชจเซ do_command (เชฆเชฐเซเช เชตเซเชฏเชเซเชคเชฟเชเชค เชเชพเชฐเซเชฏ เชเชฒเชพเชตเซ) เชเชพเชฐเซเชฏเซเชจเซ เชเซเชฒ เชเชฐเซ. เชเซเชฒเซเชฒเซเช เชเชพเชฐเซเชฏ เชตเชงเซ เชตเชฟเชเชคเชตเชพเชฐ เชคเชชเชพเชธเชตเชพ เชฏเซเชเซเชฏ เชเซ.
เชเชพเชฐเซเชฏ เชเชฒเชพเชตเชตเซเช
do_command เชซเชเชเซเชถเชจ เชธเชพเชฐเซ เชฏเซเชจเชฟเชเซเชธ เชถเซเชฒเซเชฎเชพเช เชเชฒเชพเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชเชเชฒเซ เชเซ, เชคเซ เช เชธเซเชฎเซเชณ เชฐเซเชคเซ เชเชพเชฐเซเชฏ เชเชฐเชตเชพ เชฎเชพเชเซ เชซเซเชฐเซเช เชเชฐเซ เชเซ. เชชเชฟเชคเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชพเชฐเซเชฏเซ เชถเชฐเซ เชเชฐเชตเชพเชจเซเช เชเชพเชฒเซ เชฐเชพเชเซ เชเซ, เชฌเชพเชณเช เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชพเชฐเซเชฏ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชคเซเชฏเชพเชฐ เชเชฐเซ เชเซ:
switch (fork()) {
case -1:
/*ะฝะต ัะผะพะณะปะธ ะฒัะฟะพะปะฝะธัั fork */
break;
case 0:
/* ะดะพัะตัะฝะธะน ะฟัะพัะตัั: ะฝะฐ ะฒััะบะธะน ัะปััะฐะน ะตัะต ัะฐะท ะฟัะพะฑัะตะผ ะทะฐั
ะฒะฐัะธัั ะณะปะฐะฒะฝัะน ะปะพะบ */
acquire_daemonlock(1);
/* ะฟะตัะตั
ะพะดะธะผ ะบ ัะพัะผะธัะพะฒะฐะฝะธั ะฟัะพัะตััะฐ ะทะฐะดะฐัะธ */
child_process(e, u);
/* ะฟะพ ะทะฐะฒะตััะตะฝะธั ะดะพัะตัะฝะธะน ะฟัะพัะตัั ะทะฐะบะฐะฝัะธะฒะฐะตั ัะฐะฑะพัั */
_exit(OK_EXIT);
break;
default:
/* ัะพะดะธัะตะปััะบะธะน ะฟัะพัะตัั ะฟัะพะดะพะปะถะฐะตั ัะฐะฑะพัั */
break;
}
เชเชพเชเชฒเซเชก_เชชเซเชฐเซเชธเซเชธเชฎเชพเช เชเชฃเซ เชคเชฐเซเช เชเซ: เชคเซ เชธเซเชเชพเชจเซเชกเชฐเซเชก เชเชเชเชชเซเช เช เชจเซ เชเชฐเชฐ เชธเซเชเซเชฐเซเชฎเซเชธ เชชเซเชคเชพเชจเชพ เชชเชฐ เชฒเซ เชเซ, เชชเชเซ เชคเซเชจเซ เชฎเซเชเชฒ เชชเชฐ เชฎเซเชเชฒเชตเชพ เชฎเชพเชเซ (เชเซ MAILTO เชเชจเซเชตเชพเชฏเชฐเซเชจเชฎเซเชจเซเช เชตเซเชฐเซเชเชฌเชฒ เชเชพเชธเซเช เชเซเชฌเชฒเชฎเชพเช เชเชฒเซเชฒเซเชเชฟเชค เชเซ), เช เชจเซ เชเซเชตเชเซ, เชฎเซเชเซเชฏเชจเซ เชฐเชพเชน เชเซเช เชเซ. เชเชพเชฐเซเชฏ เชชเซเชฐเซเชฃ เชเชฐเชตเชพเชจเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ.
เชเชพเชฐเซเชฏ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เช เชจเซเชฏ เชซเซเชฐเซเช เชฆเซเชตเชพเชฐเชพ เชฐเชเชพเชฏ เชเซ:
switch (vfork()) {
case -1:
/* ะฟัะธ ะพัะธะฑะบะธ ััะฐะทั ะทะฐะฒะตััะฐะตััั ัะฐะฑะพัะฐ */
exit(ERROR_EXIT);
case 0:
/* ะฟัะพัะตัั-ะฒะฝัะบ ัะพัะผะธััะตั ะฝะพะฒัั ัะตััะธั, ัะตัะผะธะฝะฐะป ะธ ั.ะด.
*/
(void) setsid();
/*
* ะดะฐะปััะต ะผะฝะพะณะพัะปะพะฒะฝะฐั ะฝะฐัััะพะนะบะฐ ะฒัะฒะพะดะฐ ะฟัะพัะตััะฐ, ะพะฟัััะธะผ ะดะปั ะบัะฐัะบะพััะธ
*/
/* ัะผะตะฝะฐ ะดะธัะตะบัะพัะธะธ, ะฟะพะปัะทะพะฒะฐัะตะปั ะธ ะณััะฟะฟั ะฟะพะปัะทะพะฒะฐัะตะปั,
* ัะพ ะตััั ะฟัะพัะตัั ะฑะพะปััะต ะฝะต ััะฟะตัะฟะพะปัะทะพะฒะฐัะตะปััะบะธะน
*/
setgid(e->gid);
setuid(e->uid);
chdir(env_get("HOME", e->envp));
/* ะทะฐะฟััะบ ัะฐะผะพะน ะบะพะผะฐะฝะดั
*/
{
/* ะฟะตัะตะผะตะฝะฝะฐั ะพะบััะถะตะฝะธั SHELL ัะบะฐะทัะฒะฐะตั ะฝะฐ ะธะฝัะตัะฟัะตัะฐัะพั ะดะปั ะทะฐะฟััะบะฐ */
char *shell = env_get("SHELL", e->envp);
/* ะฟัะพัะตัั ะทะฐะฟััะบะฐะตััั ะฑะตะท ะฟะตัะตะดะฐัะธ ะพะบััะถะตะฝะธั ัะพะดะธัะตะปััะบะพะณะพ ะฟัะพัะตััะฐ,
* ัะพ ะตััั ะธะผะตะฝะฝะพ ัะฐะบ, ะบะฐะบ ะพะฟะธัะฐะฝะพ ะฒ ัะฐะฑะปะธัะต ะทะฐะดะฐั ะฟะพะปัะทะพะฒะฐัะตะปั */
execle(shell, shell, "-c", e->cmd, (char *)0, e->envp);
/* ะพัะธะฑะบะฐ โ ะธ ะฟัะพัะตัั ะฝะฐ ะทะฐะฟัััะธะปัั? ะทะฐะฒะตััะตะฝะธะต ัะฐะฑะพัั */
perror("execl");
_exit(ERROR_EXIT);
}
break;
default:
/* ัะฐะผ ะฟัะพัะตัั ะฟัะพะดะพะปะถะฐะตั ัะฐะฑะพัั: ะถะดะตั ะทะฐะฒะตััะตะฝะธั ัะฐะฑะพัั ะธ ะฒัะฒะพะดะฐ */
break;
}
เชคเซ เชฎเซเชณเชญเซเชค เชฐเซเชคเซ เชคเชฎเชพเชฎ เชเซเชฐเซเชจ เชเซ. เชฎเซเช เชเซเชเชฒเซเช เชฐเชธเชชเซเชฐเชฆ เชตเชฟเชเชคเซ เชเซเชกเซ เชฆเซเชงเซ เชเซ, เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชฆเซเชฐเชธเซเชฅ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเช เชฎเชพเชเซ เชเชเชพเชเชจเซเชเชฟเชเช, เชชเชฐเชเชคเซ เชฎเซเช เชฎเซเชเซเชฏ เชตเชธเซเชคเซเชจเซ เชฐเซเชชเชฐเซเชเชพ เชเชชเซ เชเซ.
เชเชเซเชเชพเชฐเชฃ
เชเซเชฐเซเชจ เช เชเชถเซเชเชฐเซเชฏเชเชจเช เชฐเซเชคเซ เชธเชฐเชณ เช เชจเซ เชเชชเชฏเซเชเซ เชชเซเชฐเซเชเซเชฐเชพเชฎ เชเซ, เชเซ เชฏเซเชจเชฟเชเซเชธ เชตเชฟเชถเซเชตเชจเซ เชถเซเชฐเซเชทเซเช เชชเชฐเชเชชเชฐเชพเชเชฎเชพเช เชฌเชจเชพเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เชคเซเชฃเซ เชเชเชเชชเชฃ เชตเชงเชพเชฐเชพเชจเซเช เชเชพเชฎ เชเชฐเชคเซ เชจเชฅเซ, เชชเชฐเชเชคเซ เชคเซ เชเซเชฒเซเชฒเชพ เชเซเชเชฒเชพเช เชฆเชพเชฏเชเชพเชเชฅเซ เชคเซเชจเซเช เชเชพเชฎ เช เชฆเซเชญเซเชค เชฐเซเชคเซ เชเชฐเซ เชฐเชนเซ เชเซ. เชเชฌเซเชจเซเชเซ เชธเชพเชฅเซ เชเชตเชคเชพ เชธเชเชธเซเชเชฐเชฃ เชฎเชพเชเซ เชเซเชก เชฎเซเชณเชตเชตเชพเชฎเชพเช เชเช เชเชฒเชพเชเชฅเซ เชตเชงเซ เชธเชฎเชฏ เชฒเชพเชเซเชฏเซ เชจเชนเซเช, เช เชจเซ เชฎเชจเซ เชเซเชฌ เชฎเชเชพ เชเชตเซ! เชฎเชจเซ เชเชถเชพ เชเซ เชเซ เชนเซเช เชคเซเชจเซ เชคเชฎเชพเชฐเซ เชธเชพเชฅเซ เชถเซเชฐ เชเชฐเชตเชพเชฎเชพเช เชธเชเซเชทเชฎ เชนเชคเซ.
เชนเซเช เชคเชฎเชพเชฐเชพ เชตเชฟเชถเซ เชเชพเชฃเชคเซ เชจเชฅเซ, เชชเชฐเชเชคเซ เชฎเชจเซ เช เชเชพเชฃเซเชจเซ เชฅเซเชกเซ เชฆเซ:เช เชฅเชพเชฏ เชเซ เชเซ เชเชงเซเชจเชฟเช เชชเซเชฐเซเชเซเชฐเชพเชฎเชฟเชเช, เชคเซเชจเชพ เช เชคเชฟ-เชเชเชฟเชฒ เช เชจเซ เชตเชงเซ เชชเชกเชคเชพ เช เชฎเซเชฐเซเชคเชจเซ เชตเซเชคเซเชคเชฟ เชธเชพเชฅเซ, เชฒเชพเชเชฌเชพ เชธเชฎเชฏเชฅเซ เชเชตเซ เชธเชฐเชณเชคเชพ เชฎเชพเชเซ เช เชจเซเชเซเชณ เชจเชฅเซ.
เชเซเชฐเซเชจ เชฎเชพเชเซ เชเชฃเชพ เชเชงเซเชจเชฟเช เชตเชฟเชเชฒเซเชชเซ เชเซ: systemd-เชเชพเชเชฎเชฐ เชคเชฎเชจเซ เช เชตเชฒเชเชฌเชจ เชธเชพเชฅเซ เชเชเชฟเชฒ เชธเชฟเชธเซเชเชฎเซ เชเซเช เชตเชตเชพ เชฎเชพเชเซ เชชเชฐเชตเชพเชจเชเซ เชเชชเซ เชเซ, fcron เชคเชฎเชจเซ เชเชพเชฐเซเชฏเซ เชฆเซเชตเชพเชฐเชพ เชธเชเชธเชพเชงเชจ เชตเชชเชฐเชพเชถเชจเซ เชตเชงเซ เชฒเชตเชเซเช เชฐเซเชคเซ เชจเชฟเชฏเชเชคเซเชฐเชฟเชค เชเชฐเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ. เชชเชฐเชเชคเซ เชตเซเชฏเชเซเชคเชฟเชเชค เชฐเซเชคเซ, เชธเซเชฅเซ เชธเชฐเชณ เชเซเชฐเซเชจเซเชเชพเชฌ เชนเชเชฎเซเชถเชพ เชฎเชพเชฐเชพ เชฎเชพเชเซ เชชเซเชฐเชคเซเช เชนเชคเซเช.
เชเซเชเชเชฎเชพเช, เชฏเซเชจเชฟเชเซเชธเชจเซ เชชเซเชฐเซเชฎ เชเชฐเซ, เชธเชฐเชณ เชชเซเชฐเซเชเซเชฐเชพเชฎเซเชธเชจเซ เชเชชเชฏเซเช เชเชฐเซ เช เชจเซ เชคเชฎเชพเชฐเชพ เชชเซเชฒเซเชเชซเซเชฐเซเชฎ เชฎเชพเชเซ เชฎเชจ เชตเชพเชเชเชตเชพเชจเซเช เชญเซเชฒเชถเซ เชจเชนเซเช!
เชธเซเชฐเซเชธ: www.habr.com