mieleizhi0 2019-12-05
在Linux上,通过crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常适合周期性的日志分析或数据备份等工作。
可以通过如下指令来创建或者修改你自己的crontab文件,
crontab -e
cron job是周期性运行的,我们按如下格式来进行设置,
* * * * * command to be executed - - - - - | | | | | | | | | ----- Day of week (0 - 7) (Sunday=0 or 7) | | | ------- Month (1 - 12) | | --------- Day of month (1 - 31) | ----------- Hour (0 - 23) ------------- Minute (0 - 59)
当然有更简单的方法,你可以在 https://crontab.guru/ 网站进行在线设置,设置好了直接拷贝过来。网页提供了图形化的操作界面,对新手特别友好。
直接在运行周期后面输入想要运行的任务即可。
这样就配置好了,最好是设置一个最近的时间进行测试,测试正常后就可以换到真实的周期了。
注意到编辑命令的时候,可能使用到nano编辑器,记住保存的快捷键是Ctrl+X,保存好了直接退出,cron任务会自动安装好,不需要额外的重启操作。
可以使用-l参数列出crontab文件:
$ crontab -l 0 15 30 45 18-06 * * * /bin/echo `date` > dev/tty1
可以在系统log中进行查找,
tail -f /var/log/syslog | grep CRON
在Python开发过程中,可能使用virtualenv进行环境的配置,来隔离真实环境,防止污染。在这种情况下,如果想成功在Cron Job中运行开发好的Python脚本,推荐使用shell脚本的方式,将运行的脚本进行封装,如下例子所示:
#! /bin/bash cd my/virtual/env/root/dir source bin/activate # virtualenv is now active, which means your PATH has been modified. # Don't try to run python from /usr/bin/python, just run "python" and # let the PATH figure out which version to run (based on what your # virtualenv has configured). python myScript.py
保存好以后,比如为myShell.sh, 使用chmod指令赋予可执行权限即可,
chmod a+x myShell.sh
最后将shell脚本放在cron配置中即可,
1 * * * * /path/to/your/shell/script/myShell.sh
第一步,设置邮件地址、端口等信息:
https://www.nixtutor.com/linux/send-mail-with-gmail-and-ssmtp/
第二步,在Cron任务中加上发送邮件的指令,
1 * * * * script.sh | mail -s "Subject of Mail"
参考链接:
在Linux上,通过crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常适合周期性的日志分析或数据备份等工作。
可以通过如下指令来创建或者修改你自己的crontab文件,
crontab -e
cron job是周期性运行的,我们按如下格式来进行设置,
* * * * * command to be executed - - - - - | | | | | | | | | ----- Day of week (0 - 7) (Sunday=0 or 7) | | | ------- Month (1 - 12) | | --------- Day of month (1 - 31) | ----------- Hour (0 - 23) ------------- Minute (0 - 59)
当然有更简单的方法,你可以在 https://crontab.guru/ 网站进行在线设置,设置好了直接拷贝过来。网页提供了图形化的操作界面,对新手特别友好。
直接在运行周期后面输入想要运行的任务即可。
这样就配置好了,最好是设置一个最近的时间进行测试,测试正常后就可以换到真实的周期了。
注意到编辑命令的时候,可能使用到nano编辑器,记住保存的快捷键是Ctrl+X,保存好了直接退出,cron任务会自动安装好,不需要额外的重启操作。
可以使用-l参数列出crontab文件:
$ crontab -l 0 15 30 45 18-06 * * * /bin/echo `date` > dev/tty1
可以在系统log中进行查找,
tail -f /var/log/syslog | grep CRON
在Python开发过程中,可能使用virtualenv进行环境的配置,来隔离真实环境,防止污染。在这种情况下,如果想成功在Cron Job中运行开发好的Python脚本,推荐使用shell脚本的方式,将运行的脚本进行封装,如下例子所示:
#! /bin/bash cd my/virtual/env/root/dir source bin/activate # virtualenv is now active, which means your PATH has been modified. # Don't try to run python from /usr/bin/python, just run "python" and # let the PATH figure out which version to run (based on what your # virtualenv has configured). python myScript.py
保存好以后,比如为myShell.sh, 使用chmod指令赋予可执行权限即可,
chmod a+x myShell.sh
最后将shell脚本放在cron配置中即可,
1 * * * * /path/to/your/shell/script/myShell.sh
第一步,设置邮件地址、端口等信息:
https://www.nixtutor.com/linux/send-mail-with-gmail-and-ssmtp/
第二步,在Cron任务中加上发送邮件的指令,
1 * * * * script.sh | mail -s "Subject of Mail"
参考链接:
本文由『后端精进之路』原创,首发于博客 http://teckee.github.io/ , 转载请注明出处
搜索『后端精进之路』关注公众号,立刻获取最新文章和价值2000元的BATJ精品面试课程。