crontab

使用者的�O定: crontab
使用者想要建立例行性命令�r,使用的是 crontab �@��指令啦~不�^,�榱税踩�性的���}, �c at 同�拥模�我��可以限制使用 crontab 的使用者�ぬ�喔!使用的限制�Y料有:
  • /etc/cron.allow
    �⒖梢允褂� crontab 的�ぬ���入其中,若不在�@���n案�鹊氖褂谜�t不可使用 crontab;

  • /etc/cron.deny
    �⒉豢梢允褂� crontab 的�ぬ���入其中,若未��到�@���n案��中的使用者,就可以使用 crontab 。
�c at 很像吧!同�拥模�以��先�序�碚f, /etc/cron.allow 比 /etc/cron.deny 要��先, 而判�嗌厦妫��@����n案只�x�褚���硐拗贫�已,因此,建�h您只要保留一��即可, 免得影�自己在�O定上面的判�啵∫话�碚f,系�y�A�O是保留 /etc/cron.deny , 您可以�⒉幌胱�他�绦� crontab 的那��使用者��入 /etc/cron.deny ��中,一���ぬ�一行!

��使用者使用 crontab �@��指令�斫�立工作排程之後,��工作就��被�o�到 /var/spool/cron/ �e面去了,而且是以�ぬ��碜�榕�e的喔!�e例�碚f, dmtsai 使用 crontab 後, 他的工作��被�o�到 /var/spool/cron/dmtsai �e�^去!但�注意,不要使用 vi 直接����n案, 因�榭赡苡伸遁�入�Z法�e�`,���е�o法�绦� cron 喔!另外, cron �绦械拿恳豁�工作都��被�o�到 /var/log/cron �@��登��n中,所以�樱�如果您的 Linux 不知道有否被植入木�R�r, 也可以搜�ひ幌� /var/log/cron �@��登��n呢!

好了,那�N我��就�砹囊涣� crontab 的�Z法吧!
[root@linux ~]# crontab [-u username] [-l|-e|-r]
��担�
-u :只有 root 才能�M行�@��任�眨�亦即�推渌�使用者建立/移除 crontab;
-e :�� crontab 的工作�热�
-l :查� crontab 的工作�热�
-r :移除 crontab 的工作�热�
�例:


�例一:用 dmtsai 在每天的 12:00 �l信�o自己
[dmtsai@linux ~]$ crontab -e
# 此�r���M入 vi 的����面�您��工作!注意到,每�工作都是一行。
0 12 * * * mail dmtsai -s "at 12:00" < /home/dmtsai/.bashrc
#分 �r 日 月 �L |<==============指令串========================>|
任何使用者只要不被列入 /etc/cron.deny ��中,那�N他就可以直接下�_『 crontab -e 』去��自己的例行性命令了!整���^程就如同上面提到的,���M入 vi 的����面, 然後以一��工作一行�砭��,��完��之後,�入『 :wq 』�Υ驷犭x�_ vi 就可以了! 而每�工作的格式都是『 五���r�g��� ���H�幼髦噶� 』,那�N那五���r�g��荡�表什�N呢?

代表意�x 分� 小�r 日期 月份 �L
�底止��� 0-59 0-23 1-31 1-12 0-7

比�^有趣的是那��『�L』喔!���L�� 0 或 7 �r,都代表『星期天』的意思!另外, �有一些�o助的字符,大概有底下�@些:

特殊字符 代表意�x
* 代表任何�r刻都接受的意思!�e例�碚f,上表的�例一,那��日、月、�L都是 * , 就代表著『不�何月、何日的�Y拜�椎� 12:00 都�绦嗅崂m指令』的意思!
, 代表分隔�r段的意思。�e例�碚f,如果要下�_的工作是 3:00 �c 6:00 �r,就��是:
    0 3,6 * * * command
�是有五�冢�不�^第二�谑� 3,6 ,代表 3 �c 6 都�m用!
- 代表一段�r�g����龋��e例�碚f, 8 �c到 12 �c之�g的每小�r的 20 分都�M行一�工作:
    20 8-12 * * * command
仔�看到第二�谧�成 8-12 喔!代表 8,9,10,11,12 都�m用的意思!
/n 那�� n 代表�底郑�亦即是『每隔 n �挝婚g隔』的意思,例如每五分��M行一次,�t:
    */5 * * * * command
很��伟桑∮� * �c /5 �泶钆洌�也可以��成 0-59/5 ,相同意思!

我��就�泶钆���例子��看看吧!

例�}:假若你的女朋友生日是 5 月 2 日,你想要在 5 月 1 日的 23:59 �l一封信�o他,�@封信的�热菀呀���在 /home/dmtsai/lover.txt �攘耍��如何�M行?
答:
    直接下�_ crontab -e 之後,��成�椋�
      59 23 1 5 * mail kiki < /home/dmtsai/lover.txt
    那�拥脑�,每年 kiki 都��收到你的�@封信喔!(��然�樱�信的�热菥鸵�每年�一�啦!)

例�}:假如每五分�需要�绦� /home/dmtsai/test.sh 一次,又�如何?
答:
    同�邮褂� crontab -e �M入��:
      */5 * * * * /home/dmtsai/test.sh

那�� crontab 每��人都只有一���n案存在,就是在 /var/spool/cron �e面啊! �有建�h您:『指令下�_�r,最好使用�^�β�剑��@�颖容^不��找不到�绦�n喔!』
例�}:假如你每星期六都�c朋友有�s,那�N想要每��星期五下午 4:30 告�V你朋友星期六的�s��不要忘�,�t:
答:
    �是使用 crontab -e 啊!

真的是很��伟桑『呛牵∧屈N,�如何查�使用者目前的 crontab �热菽兀� 我��可以�@��砜纯矗�
[dmtsai@linux ~]$ crontab -l
59 23 1 5 * mail kiki < /home/dmtsai/lover.txt
*/5 * * * * /home/dmtsai/test.sh
30 16 * * 5 mail [email protected] < /home/dmtsai/friend.txt

# 注意,若�H想要移除一�工作而已的�,必�要用 crontab -e 去��~
# 如果想要全部的工作都移除,才使用 crontab -r 喔!

[dmtsai@linux ~]$ crontab -r
[dmtsai@linux ~]$ crontab -l
no crontab for dmtsai
看到了�幔� crontab 『整���热荻疾灰�了!』所以�注意:『如果只是要�h除某�� crontab 的工作�目,那�N�使用 crontab -e �碇匦戮��即可!』如果使用 -r 的��担�是���⑺�有的 crontab �Y料�热荻�h掉的!千�f注意了!

小�祟}的�D示 系�y的�O定: /etc/crontab
�@��『 crontab -e 』是��κ褂谜叩� cron �碓O�的,如果是『系�y的例行性任�铡�r, �怎�N�k呢?是否�是需要以 crontab -e �砉芾砟愕睦�行性命令呢?��然不需要,你只要�� /etc/crontab�@���n案就可以啦!有一�c需要特�e注意喔!那就是 crontab -e �@�� crontab 其��是 /usr/bin/crontab �@���绦�n,但是 /etc/crontab 可是一��『�文字�n』喔!你可以 root 的身份��一下�@���n案哩!

基本上, cron �@��服�盏淖畹��y限制是『分�』,所以『 cron ��每分�去�x取一次 /etc/crontab �c /var/spool/cron �e面的�Y料�热� 』,因此,只要你��完 /etc/crontab �@���n案,�K且�⑺��Υ嬷�後,呵呵!那�N cron 的�O定就自�拥����绦辛耍�
Tips:
在 Linux 底下的 crontab ��自�拥�臀��每分�重新�x取一次 /etc/crontab 的例行工作事�,但是某些原因或者是其他的 Unix 系�y中,由於 crontab 是�x到����w��中的,所以在你修改完 /etc/crontab 之後,可能�K不���R上�绦校� �@���r候�重新��� crond �@��服�瞻桑�
    /etc/init.d/crond restart
�B哥的�D示
好了,我��就�砜匆幌逻@�� /etc/crontab 的�热莅桑�
[root@linux ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly <==每小�r
02 4 * * * root run-parts /etc/cron.daily <==每天
22 4 * * 0 root run-parts /etc/cron.weekly <==每�L日
42 4 1 * * root run-parts /etc/cron.monthly <==每��月 1 �
分 �r 日 月 �L �绦姓呱矸� 指令串
看到�@���n案的�热菽愦蟾啪筒t解了吧!呵呵,�]�e!�@���n案�c�����我��下�_ crontab -e 的�热�缀跬耆�一模一�樱≈皇怯���地方不太相同:
  • MAILTO=root
    �@���目是�f,�� /etc/crontab �@���n案中的例行性命令�l生�e�`�r,或者是��绦薪Y果有 STDOUT/STDERR �r, ���㈠e�`�息或者是�幕�@示的�息�鹘o�l?�A�O��然是由系�y直接寄�l一封 mail �o root 啦!不�^, 由於 root �K�o法在用�舳酥幸� POP3 之�的��w收信,因此,我通常都�⑦@�� e-mail 改成自己的�ぬ�,好�我�S�r�t解系�y的��r!例如: [email protected]

  • PATH=....
    ��得我��在 BASH Shell ��中一直提到的�绦�n路����}吧!�]�e啦!�@�e就是�入�绦�n的搜�ぢ�剑� 使用�A�O的路�皆O定就已�很足�蛄耍�

  • 01 * * * * root run-parts /etc/cron.hourly
    在�]解符�『 #run-parts 』�@一行以後的命令,我��可以�l�F,五���底轴崦娼拥氖� root 喔!�]�e,�c crontab -e 的�热菔遣惶�一�拥模∵@���谖坏� root 代表的是『 �绦械氖褂谜呱矸�� root 』��然�樱�你 也可以�⑦@一行改��成其他的身份哩!而 run-parts 代表後面接的 /etc/cron.hourly 是『 一��目��龋�/etc/cron.hourly)的所有可�绦�n 』,�@也就是�f,每��小�r的 01 分,系�y��以 root 的身份去 /etc/cron.hourly/ �@��目�下�绦兴�有可以�绦械�n案!後面的三行也都是�似的意思!你可以到 /etc/ 底下去看看,系�y本�砭皖A�O了�@四��目�了!你可以�⒚刻煨枰��绦械拿�令直接��到 /etc/cron.daily/ 即可,�不需要使用到 crontab -e 的程式呢!方便吧!
基本上, /etc/crontab �@���n案�e面支援�煞N下�_指令的方式,一�N是直接下�_指令, 一�N�t是以目��硪���,例如:
  • 指令型�B
    01 * * * * dmtsai mail -s "testing" kiki < /home/dmtsai/test.txt
    以 dmtsai �@��使用者的身份,在每小�r�绦幸淮� mail 指令。

  • 目����
    */5 * * * * root run-parts /root/runcron
    建立一�� /root/runcron 的目�,�⒁�每隔五分��绦械摹嚎�绦�n』都��到�目�下, 就可以�系�y每五分��绦幸淮卧�目�下的所有可�绦�n。
�@�泳涂梢�缘� run-parts 的用意了吧!此外,�c crontab -e �����中最不相同的就是多了一��『使用者�蛹�』的概念,通常我��都是以 root 的角度�硪���例行性命令,但是�有不需要 root 的指令吧!就可以使用�@���蛹��硪���程序的使用者�凫墩l�樱�

好!你�F在大概�t解了�@一��咚咚吧!OK!假�O你�F在要作一��目�,�系�y可以每 2 分�去�绦羞@��目�下的所有可以�绦械�n案,你可以��下如下的�@一行在 /etc/crontab 中:
    */2 * * * * root run-parts /etc/cron.min
��然�樱� /etc/cron.min �@��目�是需要存在的喔!那如果我需要�绦械氖且��『程式』而已, 不需要用到一��目�呢?�如何是好?例如在��y�W路流量�r,我��希望每五分���y分析一次, 可以�@���:
    */5 * * * * root /bin/mrtg /etc/mrtg/mrtg.cfg
�]有了 run-parts 就是代表『一���n案』的意思啦!

如何!?建立例行性命令很��伟桑∪绻�你是系�y管理�T的�,直接修改 /etc/crontab �@���n案即可喔!又便利,又方便管理呢!

你可能感兴趣的:(crontab,职场,休闲)