• okass 在版块 IT技术 中回复了话题 Linux命令行操作基础 2年, 12个月前

    3. 如何使用crontab 创建定时任务

     

    在有些业务场景部署时需要创建定时任务,这里用Crontab命令来实现完成。Crontab的时间颗粒度可以精确到分钟,可以实现分钟、小时、日、月、周的任意组合。该命令适合对任务周期性有比较高要求的场合,比如定期分析系统日志、上报状态等。

    Crontab的命令行格式

    crontab [-u user] file crontab [-u user] [ -e | -l | -r ]

    Crontab的命令行参数

    -u user:用来设定某个用户的crontab服务;
    file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab。
    -e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。
    -l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。
    -r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。
    -i:在删除用户的crontab文件时给确认提示。
    Crontab文件格式

    第1列分钟0~59
    第2列小时0~23(0表示子夜)
    第3列日1~31
    第4列月1~12
    第5列星期0~7(0和7表示星期天)
    第6列要运行的命令
    Crontab文件创建

    以Ubuntu 18.04为例,创建一个Crontab文件,实现每天6点和18点定时重启系统,则输入Vim /etc/crontab

    0 0 6,18 * * /sbin/reboot

    更多使用样例

    实例1:每1分钟执行一次myCommand
    * * * * * myCommand

    每两分钟运行一次

    */2 * * * * myCommand

    实例2:每小时的第3和第15分钟执行
    3,15 * * * * myCommand

    实例3:在上午8点到11点的第3和第15分钟执行
    3,15 8-11 * * * myCommand

    实例4:每隔两天的上午8点到11点的第3和第15分钟执行
    3,15 8-11 */2 * * myCommand

    实例5:每周一上午8点到11点的第3和第15分钟执行
    3,15 8-11 * * 1 myCommand

    实例6:每晚的21:30重启smb
    30 21 * * * /etc/init.d/smb restart

    实例7:每月1、10、22日的4 : 45重启smb
    45 4 1,10,22 * * /etc/init.d/smb restart

    实例8:每周六、周日的1 : 10重启smb
    10 1 * * 6,0 /etc/init.d/smb restart

    实例9:每天18 : 00至23 : 00之间每隔30分钟重启smb
    0,30 18-23 * * * /etc/init.d/smb restart

    实例10:每星期六的晚上11 : 00 pm重启smb
    0 23 * * 6 /etc/init.d/smb restart

    实例11:每一小时重启smb
    * */1 * * * /etc/init.d/smb restart

    实例12:晚上11点到早上7点之间,每隔一小时重启smb
    0 23-7 * * * /etc/init.d/smb restart

    保存后退出即可。

     

WirelessLink
Logo