Ubuntu 16.04设置crontab定时计划任务
时间:2019-04-29 16:35 来源:linux.it.net.cn 作者:IT
cron是Linux下的无图形界面的计划任务工具,对Linux运维自动化具有极其重要的作用,也可以适用于web爬虫采集类的工作。当然,它的功用还远不止这2个。想想吧,每天我们重复干的事情有多少——频繁看论坛回帖、频繁看股市行情、定时查邮件、定时休息、定时切换桌面壁纸、定时备份重要文件、定时清理系统、定时更新系统、定时提醒重要事情等等等等,这些都可以通过cron来完成。而Linux下丰富的cli软件和强大的shell脚本让定时计划工作做起来那么自然和轻松。
在Ubuntu 16.04及其衍生版本如LinuxMint 18.1里开启cron定时计划任务步骤其实很简单:
1,安装cronie
apt install cron
2,开通并开启cronie后台服务
sudo systemctl enable cron.service; sudo systemctl start cron.service
3,建立一个MyCrontab(名字可以随便取)的文件并编辑之。
touch ~/MyCrontab && nano ~/MyCrontab
参考下面的《crontab写法举例》介绍来编辑这个文件。
4,载入MyCrontab计划到cron服务模块中
crontab ~/MyCrontab
5,查看crontab计划,看看是否一切就绪
crontab -l
关于crontab的用户权限:
cron是分用户的,系统级别的命令(如/sbin/reboot等)应该用root身份来编辑和载入crontab。
服务器推荐以root身份设置cron,Linux桌面的话就用普通用户。
普通用户的crontab就算普通用户不登录也会自动执行的。
但是普通用户载入的crontab有mkdir /test1这样的只有root才能运行的命令,那么它将会不执行。
crontab写法举例
#<分钟> <小时> <日> <月份> <星期> <命令>
*/1 * * * * date>>~/crontest
#用date>>~/crontest可以很清楚的看到测试的效果
5 * * * * ls
#指定每小时的第5分钟执行一次ls命令
30 5 * * * ls
#指定每天的 5:30 执行ls命令
30 7 8 * * ls
#指定每月8号的7:30分执行ls命令
30 5 8 6 * ls
#指定每年的6月8日5:30执行ls命令
30 6 * * 0 ls
#指定每星期日的6:30执行ls命令【注:0表示星期天,1表示星期1。星期也可以用英文来表示,sun表示星期天,mon表示星期一等。】
30 3 10,20 * * ls
#每月10号及20号的3:30执行ls命令【注:“,”用来连接多个不连续的时段】
25 8-11 * * * ls
#每天8-11点的第25分钟执行ls命令【注:“-”用来连接连续的时段】
*/15 * * * * ls
#每15分钟执行一次ls命令【即每个小时的第0 15 30 45 60分钟执行ls命令】
30 6 */10 * * ls
#每个月中,每隔10天6:30执行一次ls命令【即每月的1、11、21、31日是的6:30执行一次ls 命令。】
50 7 * * * root run-parts /etc/cron.daily
#每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件【注:run-parts参数表示执行后面目录中的所有可执行文件。】
“*” 代表取值范围内的数字,
“/” 代表”每”,
“-” 代表从某个数字到某个数字,
“,” 分开几个离散的数字
crontab书写注意事项
crontab -e可以编辑cron计划,但这个只会更改内存中的crontab任务。最好先编辑硬盘上的~/MyCrontab文件,然后用crontab ~/MyCrontab载入。
如果不想执行某一行计划,就在行首用#注释掉。
运行X程序,比如gedit,命令格式是export DISPLAY=:0.0;gedit(用env|grep DISP命令可以看到DISPLAY的名称)
(责任编辑:IT)
cron是Linux下的无图形界面的计划任务工具,对Linux运维自动化具有极其重要的作用,也可以适用于web爬虫采集类的工作。当然,它的功用还远不止这2个。想想吧,每天我们重复干的事情有多少——频繁看论坛回帖、频繁看股市行情、定时查邮件、定时休息、定时切换桌面壁纸、定时备份重要文件、定时清理系统、定时更新系统、定时提醒重要事情等等等等,这些都可以通过cron来完成。而Linux下丰富的cli软件和强大的shell脚本让定时计划工作做起来那么自然和轻松。 在Ubuntu 16.04及其衍生版本如LinuxMint 18.1里开启cron定时计划任务步骤其实很简单: 1,安装cronie apt install cron 2,开通并开启cronie后台服务 sudo systemctl enable cron.service; sudo systemctl start cron.service 3,建立一个MyCrontab(名字可以随便取)的文件并编辑之。 touch ~/MyCrontab && nano ~/MyCrontab 参考下面的《crontab写法举例》介绍来编辑这个文件。 4,载入MyCrontab计划到cron服务模块中 crontab ~/MyCrontab 5,查看crontab计划,看看是否一切就绪 crontab -l 关于crontab的用户权限: cron是分用户的,系统级别的命令(如/sbin/reboot等)应该用root身份来编辑和载入crontab。 服务器推荐以root身份设置cron,Linux桌面的话就用普通用户。 普通用户的crontab就算普通用户不登录也会自动执行的。 但是普通用户载入的crontab有mkdir /test1这样的只有root才能运行的命令,那么它将会不执行。 crontab写法举例 #<分钟> <小时> <日> <月份> <星期> <命令> */1 * * * * date>>~/crontest #用date>>~/crontest可以很清楚的看到测试的效果 5 * * * * ls #指定每小时的第5分钟执行一次ls命令 30 5 * * * ls #指定每天的 5:30 执行ls命令 30 7 8 * * ls #指定每月8号的7:30分执行ls命令 30 5 8 6 * ls #指定每年的6月8日5:30执行ls命令 30 6 * * 0 ls #指定每星期日的6:30执行ls命令【注:0表示星期天,1表示星期1。星期也可以用英文来表示,sun表示星期天,mon表示星期一等。】 30 3 10,20 * * ls #每月10号及20号的3:30执行ls命令【注:“,”用来连接多个不连续的时段】 25 8-11 * * * ls #每天8-11点的第25分钟执行ls命令【注:“-”用来连接连续的时段】 */15 * * * * ls #每15分钟执行一次ls命令【即每个小时的第0 15 30 45 60分钟执行ls命令】 30 6 */10 * * ls #每个月中,每隔10天6:30执行一次ls命令【即每月的1、11、21、31日是的6:30执行一次ls 命令。】 50 7 * * * root run-parts /etc/cron.daily #每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件【注:run-parts参数表示执行后面目录中的所有可执行文件。】 “*” 代表取值范围内的数字, “/” 代表”每”, “-” 代表从某个数字到某个数字, “,” 分开几个离散的数字 crontab书写注意事项 crontab -e可以编辑cron计划,但这个只会更改内存中的crontab任务。最好先编辑硬盘上的~/MyCrontab文件,然后用crontab ~/MyCrontab载入。 如果不想执行某一行计划,就在行首用#注释掉。 运行X程序,比如gedit,命令格式是export DISPLAY=:0.0;gedit(用env|grep DISP命令可以看到DISPLAY的名称) (责任编辑:IT) |