前言

Linux配置定时任务,大家都知道使用crontab这个系统功能,但有时候我们需要区分用户执行。本文详细介绍两种配置方式的区别和使用场景。

方法1:crontab -e(用户级)

使用命令 crontab -e 然后直接编辑定时脚本。

这样执行以后,属于用户自定义的,会被写到 /var/spool/cron 目录下,生成一个和用户名一致的文件,文件内容就是我们编辑的定时脚本。

示例:

[root@localhost cron.d]# cd /var/spool/cron[root@localhost cron]# ll总用量 4-rw-------. 1 root root 52 12月 9 10:58 root[root@localhost cron]# pwd/var/spool/cron[root@localhost cron]# cat root30 03 * * * /root/automysqlbackup.sh

方法2:vi /etc/crontab(系统级)

使用命令 vi /etc/crontab 编辑定时脚本。

示例:

[root@localhost ~]# cat /etc/crontabSHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=rootHOME=/# run-parts30 * * * * root /usr/sbin/ntpdate 210.72.145.4401 * * * * root run-parts /etc/cron.hourly02 4 * * * root run-parts /etc/cron.daily22 4 * * 0 root run-parts /etc/cron.weekly42 4 1 * * root run-parts /etc/cron.monthly*/1 * * * * root run-parts /opt/openoffice.org3/program/start.sh############################################30 4 * * * root /usr/bin/rsync -vzrtopg --progress --delete [email protected]::resource /hyy/bak/resource30 4 * * * root /usr/bin/rsync -vzrtopg --progress --delete [email protected]::log /hyy/bak/log############################################

两者区别总结

对比项crontab -e/etc/crontab
配置级别用户级系统级
存储位置/var/spool/cron/用户名/etc/crontab
是否需要指定用户不需要,执行当前用户必须指定用户(如root)
语法格式分 时 日 月 周 命令分 时 日 月 周 用户 命令
语法检查系统自动检查语法不会自动检查
适用场景个人用户的定时任务系统服务级别的定时任务

使用建议

  • 系统级配置:我们需要直接配置 /etc/crontab
  • 个人级配置:一般还是建议大家使用 crontab -e,这样系统也会帮着检查我们配置的脚本语法

常见问题

crontab 没有立即生效?

添加 crontab 后,一分钟之内就会生效。如果没生效,可以通过重启 crond 服务刷新配置。

crontab执行报错怎么办?

推荐在 crontab 中使用绝对路径,并命令测试脚本是可以正常执行的。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部