zoukankan      html  css  js  c++  java
  • Linux 定时任务 crontab

    来自:https://www.runoob.com/w3cnote/linux-crontab-tasks.html

    linux内置的cron进程搭配shell脚本可以实现非常复杂的定时指令。

    cron介绍

    crontab命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表,我们可以在以下文件夹内找到相关配置文件。

    • /var/spool/cron/ 目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名 (需要使用root权限查看)
    • /etc/crontab 这个文件负责调度各种管理和维护任务。
    • /etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。
    • 我们还可以把脚本放在/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly目录中,让它每小时/天/星期、月执行一次。

    ubuntu 查看crontab运行日志

    Ubuntu服务器/var/log下没有cron日志,这里记录一下如何ubuntu server如何查看crontab日志

    修改rsyslog

    sudo vim /etc/rsyslog.d/50-default.conf

    cron.*              /var/log/cron.log #将cron前面的注释符去掉 

    重启rsyslog

    sudo  service rsyslog  restart

    sudo service cron restart

    查看crontab日志

    less  /var/log/cron.log 

    crontab的使用

    我们常用的命令如下:

    crontab [-u username]    //省略用户表表示操作当前用户的crontab
        -e      (编辑工作表)
        -l      (列出工作表里的命令)
        -r      (删除工作作)

    我们用crontab -e进入当前用户的工作表编辑,是常见的vim界面。每行是一条命令。

    crontab的命令构成为 时间+动作,其时间有分、时、日、月、周五种,操作符有

    • * 取值范围内的所有数字
    • / 每过多少个数字
    • - 从X到Z
    • 散列数字

    linux下nano修改并保存

    保存和退出:

    如果你要保存所做的修改,按下Ctrl+O。想要退出,按下Ctrl+X。如果你退出前没有保存所做的修改,它会提示你是否要保存。如果不要,请按N,反之,则按Y。然后它会让你确认要保存的文件名,确认或修改后按Enter即可。

    剪切和粘贴:

    要剪切一整行,请用Ctrl+K(按住Ctrl不放,再按下K键)。光标所在的行便消失了。要粘贴它,只需把光标移动到您所要粘贴的位置,然后按Ctrl+U即可。要移动多行,只需多按几次Ctrl+K把需要移动内容都剪切下来,然后按一次Ctrl+U就可以把刚剪切的内容全部粘贴上来。

    实例

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

    * * * * * 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

    * 23-7/1 * * * /etc/init.d/smb restart

    将Crontab中的命令输出按照当前日期进行存储,%号前要转义

     0 22 * * 7 mysqldump -uroot -p*** vpu >/mnt/vpu_streams/testtools/Backup_21_Vpu_DB/Dump$(date +\%Y_\%m_\%d)_21vpu.sql 

    ******定时任务书写要领******

    要领1:定时任务要加注释

    要领2:定时任务命令或脚本结尾加 &>/dev/null 或 >/dev/null 2>&1 或 1>/dev/null 2>/dev/null

    要领3:定时任务执行shell脚本前加/bin/sh,定时任务执行shell脚本不必添加执行权限

    要领4:定时任务命令或程序尽量写到脚本里,定时任务只要执行脚本即可

             注意操作步骤:

      (1)、命令行执行

      (2)、编写脚本

      (3)、测试脚本

      (4)、设置定时任务

    要领5:生产任务程序不要随意打印输出信息

    要领6:定时任务执行的脚本要规范路径 (例如 /server/script)

    要领7:配置定时任务要规范操作过程

    要领8:定时任务执行特殊的字符需要进行转义,否则会报错,例如 百分号% 转义 \%

    要领9:定时任务脚本中如果涉及使用到环境变量,必须在脚本中重新定义,不然,定时任务识别不了

    参考:https://www.cnblogs.com/nixiansen/p/11271843.html
    https://blog.csdn.net/w6611415/article/details/51736236





  • 相关阅读:
    mysql 用户管理 权限控制
    微信开发--自动回复图片
    MySQL要导出成excel的方法
    mysql 和excel相互转换
    MYSQL 函数复习
    查找算法
    PySpider的安装
    在Windows下安装scrapy
    chromedriver安装
    Sublime Text 3中配置Python3的开发环境
  • 原文地址:https://www.cnblogs.com/mianbaoshu/p/14086408.html
Copyright © 2011-2022 走看看