Linux计划任务
Linux计划任务
linux 系统则是由 cron (crond) 这个系统服务来控制的。Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的。另 外, 由于使用者自己也可以设置计划任务,所以, Linux 系统也提供了使用者控制计划任务的命令 :crontab 命令。
crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务 工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
计划任务分为一次性计划任务(at)和周期性计划任务(croutab)。
linux任务调度的工作主要分为以下两类:
*系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
*个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置。
一、crond服务的启动
/sbin/service crond start #启动服务
/sbin/service crond stop #关闭服务
/sbin/service crond restart #重启服务
/sbin/service crond reload #重新载入配置
二、crontab命令选项
crond服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:
crontab -u #设定某个用户的crond服务,一般root用户在执行这个命令的时候需要此参数
crontab -l #列出某个用户crond服务的详细内容
crontab -r #删除某个用户的crond服务
crontab -e #编辑某个用户的crond服务
crontab -i #在删除用户的crontab文件时给确认提示
比如说root查看自己的cron设置:crontab -u root -l
再例如,root想删除fred的cron设置:crontab -u fred -r
三、语法格式
分 小时 日 月 星期 命令
0-59 0-23 1-31 1-12 0-6 command (取值范围,0表示周日一般一行对应一个任务)
5 * * * * /bin/ls /home #指定每小时的第5分钟执行一次ls命令
星号(*):代表所有可能的值。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在分钟字段,表示每十分钟执行一次。
四、实例
30 5 * * * /bin/ls /home 指定每天的 5:30 执行/bin/ls /home命令
30 7 8 * * /bin/ls /home #指定每月8号的7:30分执行/bin/ls /home命令
30 5 8 6 * /bin/ls /home #指定每年的6月8日5:30执行/bin/ls /home命令
30 6 * * 0 /bin/ls /home #指定每星期日的6:30执行/bin/ls /home命令[注:0表示星期天,1表示星期1,以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。]
30 3 10,20 * * /bin/ls /home #每月10号及20号的3:30执行/bin/ls /home命令[注:”,”用来连接多个不连续的时段]
25 8-11 * * * /bin/ls /home #每天8-11点的第25分钟执行/bin/ls /home命令[注:”-”用来连接连续的时段]
*/15 * * * * /bin/ls /home #每15分钟执行一次/bin/ls /home命令 [即每个小时的第0 15 30 45 60分钟执行/bin/ls /home命令 ]
30 6 */10 * * /bin/ls /home #每个月中,每隔10天6:30执行一次/bin/ls /home命令[即每月的1、11、21、31日是的6:30执行一次/bin/ls /home命令。 ]
50 7 * * * root run-parts /etc/cron.daily #每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件[ 注:run-parts参数表示,执行后面目录中的所有可执行文件。 ]
五、新增计划任务的两种方法
1、在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。
2、直接编辑/etc/crontab 文件,即vi /etc/crontab,添加相应的任务。
六、注意事项
在添加计划任务时,所执行的命令和脚本文件建议以绝对路径添加,否则可能会出现无法执行的情况。
七、其他
用户任务调度:用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用 crontab 工具来定制自己的计划任务。所有用户定义的crontab 文件都被保存在 /var/spool/cron目录中。其文件名与用户名一致。
使用者权限文件:
文件:
/etc/cron.deny
说明:
该文件中所列用户不允许使用crontab命令
文件:
/etc/cron.allow
说明:
该文件中所列用户允许使用crontab命令
文件:
/var/spool/cron/
说明:
所有用户crontab文件存放的目录,以用户名命名
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY