9_Cron命令相关用法
Cron命令相关用法
-
本文将讨论Cron,它是在linux管理中最实用的程序之一,它允许你在特定的时间安排命令和任务,也叫Corn作业。
Corn作为守护进程运行,用于执行重复性任务,比如备份、监视磁盘空间使用、使用最新的应用程序版本更新系统、发送电子邮件和轮换日志等等。我认为没有不运行几个Corn任务的linux服务器。
crontab一词具有三种不同的含义:包含用户cron作业的文本文件被称为用户的
crontab
,每个用户都有这样一个文件,在Ubuntu上,这些文件位于/var/spool/cron/crontabs,只有root用户可以访问这些目录。还有一个叫
crontab
的命令用来管理指定用户,这些文件位于/var/spool/cron/的子目录中。不建议手动编辑他们,建议改用crontab
命令,这将使用您首选或默认的文本编辑器打开文件,并在退出时验证文件的结构。显示crontab文件的内容可用:
crontab -l 一开始,用户没有crontab编辑,编辑当前用户的crontab文件,运行:
crontab -e # -e = edit 如果没有默认值,系统会提示你选择一些编辑器。
在打开的文件中,你可以编辑你想安排的任务。举个例子,你想在每天6a.m运行一个backup脚本,所以可以在该文件中编辑:
0 6 * * * /root/backup.sh #该行由六个字段组成,每个字段之间用空格隔开,从前到后依次是 minute hour dayofmonth month dayofweek command。注意hour是以24小时为计数的,dayofweek范围是0-7,星期日可以用0或7表示。 还比如你想安排一个每分钟监视磁盘空间使用的任务:
* * * * * /root/check_space.sh 还比如你想在凌晨4点、6点和10点运行任务,所以分钟为零,在各个小时数之间加逗号:
0 4,6,10 * * * /root/check_space.sh 还比如你希望任务在工作日的晚上9点至5点之间运行,在各个小时数之间加横号,每小时一次:
0 9-17 * * 1-5 /root/firewall.sh 还比如你希望在固定的时间间隔内执行某任,比如每隔三天,在4点和21点运行一次任务:
0 4,21 * */3 * /root/task.sh 还有几个cron宏用于指定最常用的间隔:
比如每年或者每年将在1月1日午夜运行一次指定的命令/每个月/每星期/每天/每小时/reboot:
@yearly /root/happy_new_year @monthly /root/task.sh @weekly /root/task.sh @daily /root/path_to_script.sh @hourly /root/path_to_script.sh @reboot /root/firewall.sh 比如我想每隔2分钟将当前日期和时间附加到文件中:
*/20 * * * * date >> /tmp/date_and_time.txt 查看ubuntu上的cront日志文件:
tail -f /var/log/syslog 查看centos上的cront日志文件:
tail -f /var/log/cron 等两分钟,日志文件上会出现 CMD (date >> /tmp/date_and_time.txt)的任务提示
要删除您的crontab文件,请运行:
crontab -r
root可以使用
-u
选项和用户名编辑、列出或删除其他用户的crontab
。sudo su crontab -e -u student #接着编辑crontab文件 crontab -r -u student crontab -l no crontab for student #此时student下没有crontab,说明root用户可以任意修改删除其他用户的crontab
root还额可以对哪些用户可以访问自己的crontab文件设置一些限制:
另外还有一些基于Web的crontab语法生成器可以使这更加容易,比如
crontab.guru/
和crontab-generator.org/
只要你输入想要的时间日期,它会自动生成相应的crontab语法。我们看到有一些cron作业将以root身份运行,你只需要将脚本移动到某些目录中去,这些目录是
/etc/cron.daily、hourly、monthly和weekly。例如,将某脚本移动到/etc/cron.hourly目录,该脚本会每隔一小时执行一次,然后在/etc/crontab中指定这些cron作业的确切运行时间
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现