Linux �Ҧ�ʩR�O���إ�
����w���A���@�A�s�峹�аѦ� �o��
�̪��s����G2002/05/30
����O�Ҧ�ʩR�O�H
Linux �t�Ϊ��Ҧ�ʩR�O�������H
�Ȱ���@�����u�@�Ƶ{�G at
�`�����檺�Ҧ�ʩR�O�G crontab
�t�Ϊ� crontab �]�w�G /etc/crontab
�w�������@�G /var/log/cron �O����
�������D�m��

����O�Ҧ�ʩR�O�H
�C�ӤH�Φh�Τֳ����@�Ǭ��|�Ϊ̬O�u�@�A�����u�@�O�Ҧ�ʪ��A�Ҧp�C�~�@�����[�~�B�C�Ӥ�@�����u�@���i�B�C�g�@�������\�|���B�C�ѻݭn�����d�����F�����u�@�h�O�{�ɵo�ͪ��A�Ҧp��n�`���q�����x�ӳX�A�ݭn�A�dzƺt�����������I�Φb�ͬ��W���A�Ҧp�C�~���R�H���ͤ�B�C�Ѫ��_�ɮɶ������B�٦���o�ʪ��q���j�����]����ڵ��n�[�F���^�����o�C�o�Ǥu�@���i�H�٬��Ҧ�ʩR�O�A�ӳo�Ǥu�@ Linux �]���i�H���z�����A�Ҧp�G�C�@�Ѧ��W 8:00 ���n���A���s���W���T�A�ñҰʭ��֨ӳ�A�_�ɡF�Ӥ��� 12:00 �Ʊ� Linux �i�H�o�@�ʫH��A���l��H�c�A�����A�i�H�h�Y���\�F�F�t�~�A�b�C�~���A�R�H���ͤ骺�e�@�ѡA���o�ʫH�����A�A�H�K�ѰO�o�򭫭n���@�ѡC
�q�W�������������i�H�ܲM�����o�{��ؤu�@�Ƶ{���覡�G ����b Linux ���U�p��F��o��ӥ\��O�H�����I���N�o�ϥ� at �P crontab �o��Ӧn�F���o�I ���U�ڭ̥��ӽͤ@�� Linux ���t�Ψ쩳�b������Ʊ��A��򦳭Y�z�h���u�@�Ƶ{�b�u�@�O�H�M��A�^�ӽͤ@�� at �P crontab �o��Ӧn�F��I

Linux �t�Ϊ��Ҧ�ʩR�O������
�n�F�A������A���ۤv������Ҧ�ʩR�O�n�ӧ@�r�I�HLinux ���u�@�i�h�۩O�I�ѫe�����쪺�X�g�峹���A�ڭ̪��DLinux �����b�I���U���u�@�i�O�ܦh���A�ר�O�����}�񪺱��p�U�A�إ߻P�����s�u�BMySQL ��Ʈw���Y�ɧ�s�B�H�Τ@�ǨҦ檺�t�Ϋ��O�A�Ҧp����O���骺�u�@�����C�ѩ�Ҧ檺�u�@�D�`���h�A��b���i��C�ѳ��n�޲z���Ӥ�ʿ�J�a�I�ҥH�~�|�إ߳o�Ӥu�@�Ƶ{���ݨD���I�򥻹w�]���u�@�����U�o�ǡG Linux �w�]���Ҧ�u�@�ܤִN���o�ǤF�A�A�[�W�z�V�O���� Linux �i��u�@�Ƶ{���]�p�A�K�K�I�C�Ѫ��u�@�q�i�O�۷����j���O�I

�Ȱ���@�����u�@�Ƶ{
�p�G�ȭn����@�����u�@�A�N�ϥ� at �o�ӫ��O�a�I�o�ӫ��O���N�O atd �o�ӪA�ȰաI�ҥH�аO�o�@�w�n�Ұʳo�ӪA����I�p�G�O�b Red Hat �t�ΤU�A�i�H�ϥΡG
  1. ntsysv
  2. ��� atd
  3. ���U OK �I
�p�G�O�b Mandrake �t�ΤU�A�i�H�ϥΡG
  1. chkconfig --add atd
  2. chkconfig --list

  3. �W���o�ӫ��O�i�H�d�� atd �b run-level ���T�����p���A�O�_�|�b�}�����ɭԳQ�ҰʡI
�򥻤W�A atd �O�w�]�}�Ҫ��A�p�G�z�S����ʹL�t�ιw�]�Ȫ��ܡA����W�����ʧ@�N���ݭn���o�I�U�F at �o�Ӱʧ@�|�N�u�@�Ƶ{�g�J /var/spool/at �o�ӥؿ��U�O�I�M�ᵥ�ݨt�αN�������o�I���~�A�o�� at ���O���M�w�]�O�Ҧ��H����i��A���O�i�H�g�� root ���W�d�ӭ���ϥΪ��H�f�C�����k���P /etc/hosts.allow(deny) �����A�ϥ� /etc/at.allow(deny) �o����ɮרӭ���G �n�F�I�ڭ̨ӽͤ@�� at ���y�k�a�I
 
[test @test test]# at [-m] TIME�@�@�@�@(�U�F�u�@���O)
[test @test test]# atq�@�@�@�@�@�@�@�@ (�d�ݥثe���u�@�Ƶ{)
[test @test test]# atrm [jobnumber]�@�@(�R���Ƶ{)
�Ѽƻ����G
-m    �G���� at �ҳW�d���u�@�Ƶ{�ɡA�N�ù���X���G mail ���U�F���O���ϥΪ�
TIME  �G�ɶ����榡�A�����U�X�ӡG
�@�@�@HH:MM YYYY-MM-DD�@�@�@�@�@�@�@�@�@�@�@ �@ex> 04:00 2002-05-30 (����T�Q���|�I����)
�@�@�@HH[pm;am] + number [hours;days;weeks]�@�@ex> 4pm + 3 days (�b�L 3 �Ѫ��U�� 4 �I)
�@�@�@HH:MM�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@ex> 12:00 (���Ѫ� 12 �I����)
�@�@�@HH[pm;am] [Month] [Day]�@�@�@�@�@�@�@�@�@ex> 1pm May 30
jobnumber�G�C�@�� at �u�@�Ƶ{�����s�ƪ����ǡI�o�ӧY�O�I
�d�ҡG

[test @test test]# at 5pm   <==�b���Ѫ� 5pm ����A�p�G���Ѥw�L 5 �I�h���Ѱ���F
warning: commands will be executed using (in order) a) $SHELL b) login shell c) /bin/sh
at> mail -s test test < /home/test/.bashrc <==�o�N�O�ڪ��u�@�I
at> <EOT> <==�o�̬O���U [Ctrl] + D �N�i�H���}�F�I
job 8 at 2002-05-30 17:00  <==�o�̷|�i�D�A�o�Ӥu�@�����X�� 8 ���A���檺������᭱�ҥܡC

[test @test test]# atq   <==�s���@�U�A(test)�ثe���h�֤u�@�H
5       2002-05-30 12:00 a test
8       2002-05-30 17:00 a rest

[test @test test]# atrm 5<==�R���� 5 ���u�@
[test @test test]# atq
8       2002-05-30 17:00 a rest

�Ъ`�N�I�b at �U�F����A�K�i�J���O�C�U�F���Ҧ��I�b�o�̧A�i�H���ƪ���J���O�A���O���}���ɭԽФU�F�y [Ctrl] + D �z�N�i�H���}�F�I���}����A�t�η|�i�D�A�o�Ӥu�@�Ƶ{�����X�P�ϥΪ̬O�֡I�����I��²��a�I


�`�����檺�Ҧ�ʩR�O
�o�Ӵ`�����Ҧ�ʩR�O���N�O cron �o�ӪA�Ȱ� (crond)�I���A�U�F crontab �����O����A�|�N�A���R�O�g�J /var/spool/cron�o�ӥؿ�������I�Ҧp test �U�F�F�L�� crontab �R�O�A����N�|�۰ʲ��� /var/spool/cron/test �o���ɮסI�y���Ъ`�N�A�o���ɮפ��ઽ���s��I�z�M����檺���O�O���|��m�b /var/log/cron �o���ɮפ��I�ҥH�A�y�p�G�z�� Linux �t�Τ����D�O�_�Q�차�J�I�ɡA�i�H�j�M�@�U /var/log/cron �o�ӰO���סA����ݬݦ��S���Q�d���H�z
�n�F�I�ڭ̨Ӭݤ@�U crontab �����O�y�k�a�I
 
[test @test test]# crontab [-u user] [-l | -e | -r]
�Ѽƻ����G
-u user �G�u�� root ��U�F���ѼơA����νsĶ��L�ϥΪ̪� crontab ���e
-l      �G�C�X crontab �����e
-e      �G�s�� crontab �����e
-r      �G�R�� crontab �����e
�d�ҡG
�@��ϥΪ� test �n�b�C�Ѫ� 12:00 �o�H���ۤv�G

[test @test test]# crontab -e <==�ۤv�s��ۤv�� crontab ���e

�i�J crontab �s�褺�e�A�ϥ� vi ��I

0 12 * * * mail test < /home/test/test.txt
���ɤ��g |========���O�C===============|

�W�����Ҥl�O���G���p�A�ݭn�b�C�Ѫ����� 12:00 �o�@�ʫH���A�ۤv�A�ӥB�H�����e�w�g�g�n�F�A���n��˧@�O�H�ӥB�A�t�@�Ӱ��]�O�A�A�b Linux Server �����v���Ȥ��@��ϥΪ̡A�ä��O root �]�޲z���^�����A���n��˳]�w�A���Ҧ�ʩR�O�O�H�����I���N�ϥ� crontab �o�ӫ��O�a�I�A�u�n����y crontab -e �z�N�i�H�i�J vi ���s��e���ӽs��A���Ҧ�ʩR�O���I

�b�W�����Ҥl���A��J crontab -e �ɡA�|�X�{�@�� vi �e���A�M��A�b vi �e������J�W�����@��r�A����� :wq �x�s�����}�I�Y�i�����s��I�e���a�I���W�����@��r�N������N�q�O�H�A�i�H�ݨ�A�b�u������R�O���e�]�N�O mail test < /home/test/test.txt �^�`�@�����ӼƦr�A�o���ӼƦr���O�N���G
���@�@�]0-59�^
�p�ɡ@�]0-23�^
����@�]1-31�^
����@�]1-12�^
�g�@�@�]0-6�^
�Ʀr�N�����N�q
����
�p��
���
���
�g
�d��
0-59
0-23
1-31
1-12
0-6 (0���P����)
�t�~�A�p�G�O�y ��  �z���ɭԡA�N���Ҧ��Ʀr���A�Ϊ��N��C�ҥH�A�A�N�i�H���D�ڤW�����@��g���N�q����F�I���N�O�y���צ��B���B�P���X�� 12 �I 0 ���ɡA���� mail test < /home/test/test.txt �o�өR�O�z�I�٤��A�ѡH�S���Y�A�ڭ̳o�̧@�X�ӨҤl�I
 
���D�@�G���p�A���k�B�ͥͤ�O 5 �� 2 ��A�A�Q�n�b 5 �� 1 �骺 23:59 �o�@�ʫH���L�A
�@�@�@�@�o�ʫH�����e�w�g�g�b /home/test/lover.txt ���F

[test @test test]# crontab -e

59 23 1 5 * mail pigpp < /home/test/lover.txt

���˪��ܡA�C�~ pigpp ���|����A���o�ʫH��I�]���M�o�A�H�����e�N�n�C�~�ܤ@�ܰաI�^
 
���D�G�G���p�A�C�j�������n�h check �A���@�ӦW�� test.sh ���妸�ɤ@���A�h�G

[test @test test]# crontab -e

59 23 1 5 * mail pigpp < /home/test/lover.txt  <==��誺���ӫ��O�٦s�b��I
*/5 * * * * /home/test/test.sh  <==�s�[�J���@�ӱƵ{�I

�`�N����I���� crontab �C�ӤH���u���@���ɮסA�N�O�b /var/spool/cron �̭����ɮװաI�٦����ƭn�`�N�@�U�G
(1) ���O�����|�̦n�O�U�F������|�A�o�ˤ�����|�䤣����檺�ɮ׳�F
(2) �Ĥ@�ӼƦr */5 ���ܡy�C����������@���z���N��I
���D�T�G���p�A�C��§�����P�����U�� 4:30 �n�i�D�B�ͬP���������|���n�ѰO�A�h�G

[test @test test]# crontab -e

59 23 1 5 * mail pigpp < /home/test/lover.txt 
*/5 * * * * /home/test/test.sh
30 16 * * 5 mail frend@test.domain.name < /home/test/frend.txt <==�s�[�J���I

�����I�o�˫�²��a�I�p���N�i�H�������F��z�һݭn���Ҧ�ʤu�@�Ƶ{���w���o�I
�n�F�I����ڭ̭n�p��Ӭd�ݨϥΪ̥ثe�� crontab ���u�@�Ƶ{�O�H
 
[test @test test]# crontab -l <==�o�� -l �O L ���p�g
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.27683 installed on Thu May 30 13:38:38 2002)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
59 23 1 5 * mail pigpp < /home/test/lover.txt
*/5 * * * * /home/test/test.sh
30 16 * * 5 mail frend@test.domain.name < /home/test/frend.txt
�������I���o����ܪ����e�N�O /var/spool/cron/test �ɮת����e�աI����p��R���Ƶ{�O�H
 
[test @test test]# crontab -r
[test @test test]# crontab -l
no crontab for test
�ݨ�F�ܡH crontab �y��Ӥ��e�������F�I�z�ҥH�Ъ`�N�G�y�p�G�u�O�n�R���Y�� crontab ���u�@���ءA����Шϥ� crontab -e �ӭ��s�s��Y�i�I�z�p�G�ϥ� -r ���ѼơA�O�|�N�Ҧ��� crontab ��Ƥ��e���R�����I�d�U�`�N�F�I

�t�Ϊ� crontab �]�w
�o�ӡy crontab -e �z�O�w��ϥΪ̪� cron �ӳ]�p���A�p�G�O�y�t�Ϊ��Ҧ�ʥ��ȡz�ɡA�ӫ���O�H�O�_�٬O�ݭn�H crontab -e �Ӻ޲z�A���Ҧ�ʩR�O�O�H���M���ݭn�A�A�u�n�s�� /etc/crontab�o���ɮ״N�i�H�աI���@�I�ݭn�S�O�`�N��I���N�O crontab -e �o�� crontab ���O /usr/bin/crontab �o�Ӱ����ɡA���O /etc/crontab �i�O�@�ӡy�¤�r�ɡz��I�A�i�H root �������s��@�U�o���ɮ׭��I
�򥻤W�A cron �o�ӪA�Ȫ��̧C��������O�y�����z�A�ҥH�y cron �|�C�����hŪ���@�� /etc/crontab �P /var/spool/cron �̭�����Ƥ��e�z�A�]���A�u�n�A�s�觹 /etc/crontab �o���ɮסA�åB�N�L�x�s����A�����I���� crontab ���]�w�N�۰ʪ��|�Ӱ���F�I
�`�N�G�b Linux ���U�� crontab �|�۰ʪ����ڭ̨C�������sŪ���@�� /etc/crontab ���Ҧ�u�@�ƶ��A���O�Y�ǭ�]�Ϊ̬O��L�� Unix �t�Τ��A�ѩ� crontab �OŪ��O����������A�ҥH�b�A�ק粒 /etc/crontab ����A�i��ä��|���W����A�o�ӮɭԽЭ��s�Ұ� crond �o�ӪA�ȧa�I
/etc/rc.d/init.d/crond restart
�n�F�A�ڭ̨Ӭݬ� /etc/crontab �o���ɮת����e�a�G
 
[root@test /root]# vi /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01  * * * * root    run-parts /etc/cron.hourly   <==�C�p�ɰ��檺�u�@
02  4 * * * root    run-parts /etc/cron.daily   <==�C�� ���檺�u�@
22  4 * * 0 root    run-parts /etc/cron.weekly  <==�C�P�����檺�u�@
42  4 1 * * root    run-parts /etc/cron.monthly  <==�C�Ӥ���檺�u�@
�� �ɤ��g �ϥΪ�    �Ѽ�     ���O

�ݨ�o���ɮת����e�A�j���N�A�ѤF�a�I�����A�S���I�o���ɮ׻P�N���ڭ̤U�F crontab -e �����e�X�G�����@�Ҥ@�ˡI�u�O���X�Ӧa�褣�ӬۦP�G

�w�������@
�������D�m�� ( �n�ݵ��׽бN�ƹ����ʨ�y���G�z���U���ťճB�A���U������ťճB�Y�i��� )
2002/05/30�G�Ĥ@������
2003/02/10�G���s�s�ƻP�[�J FAQ