cron便是一个能够实行定时任务的命令,实在该命令本身不难,下面
什么是 cron?
cron命令在 Linux 和 Unix 中无处不在,并且常常被模拟和重新发明,以至于它险些是定时任务的通用术语,它是一种自动化形式,只管它有不同的实现,比如Dillon 的 cron、Vixie 的 cron、chrony,以及类似systemd timersanacron和systemd timers 的变体,但几十年来,语法和事情流程基本保持不变。
在 Linux 系统上,目录/var/spool被设计为用户不打算直接与之交互的主要但低级文件的中央枢纽,管理的线轴之一/var/spool是cron表或简称“crontab”,Linux 系统上的每个用户都有一个 crontab,用户可以编辑、查看和删除他们自己的 crontab,此外,用户可以利用他们的 crontab 来安排任务。
编辑定时设置您可以利用crontab命令以及-e(用于编辑)参数来编辑您的 crontab ,默认情形下,大多数系统调用vim文本编辑器。
如果你像我一样不该用 Vim,那么你可以在你的~/.bashrc文件中为自己设置一个不同的编辑器,我将我的设置为 Emacs,但您也可以考试测验Nano、Kate或任何您最喜好的编辑器,该EDITOR环境变量定义你在终端利用的文本编辑器,而VISUAL你在图形模式下利用什么编辑变量定义:
export EDITOR=nanoexport VISUAL=kate
利用新设置刷新 shell 会话:
$ source ~/.bashrc
现在您可以利用您喜好的编辑器编辑您的 crontab:
$ crontab -e
安排任务
cron命令实质上是一个日历命令,可以cron通过利用五个不同的属性来判断您希望作业运行的频率:分钟minute、小时hour、日期date、月份month、事情日weekday。
这些属性的顺序是严格的,不一定直不雅观,但可以将它们视为过滤器或掩码,默认情形下,您可能会认为所有内容都设置为always或every。
下面的例子将touch /tmp/hello,在整年每一天的每一小时的每一分钟的运行:
touch /tmp/hello
您可以通过为每个属性设置特定定义来限定这个包罗万象的操持,每半小时实行任务:
30 touch /tmp/hello
您可以利用特定的韶光进一步限定此命令,以下任务在每天凌晨 3:30 运行:
30 3 touch /tmp/hello
定时任务仅在每个月的第一天运行:
30 3 1 touch /tmp/hello
可以利用 1 为 1 月设置月份,最高为 12 月设置月份,可以利用 0 设置星期日,6 设置星期六,定时任务在 4 月份的 3:15 运行,仅在星期一:
15 3 4 1 touch /tmp/hello
设置增量
所有这些设置都与一个值完备匹配,您还可以利用cron表示法在一段韶光后运行作业,例如,每 15 分钟运行一次定时任务:
/15 touch /tmp/hello
每三天在上午 10 点运行定时任务:
10 /3 touch /tmp/hello
每六个小时运行定时任务:
/6 touch /tmp/hello
Cron 简写
当代cron实现为通用操持添加了方便的速记,这些是:
@hourly@daily@weekly@monthly@yearly or @annually列出 cron 任务利用crontab命令,可以查看操持cron任务的列表:
$ crontab -l15 3 4 1 touch /tmp/hello
删除 crontab
完成 crontab 后,可以利用以下-r选项将其删除:
$ crontab -r -i
该-i参数代表交互式,在删除文件之前,它会提示您进行确认。
cron 可以做什么cron经典用法便是对做事器资源的备份,如果您的打算机在一天中的大部分韶光或整日整夜都处于开机状态,那么您可以安排对主要分区进行例行备份,我rdiff-backup每天凌晨 3 点在我的主数据分区上运行一个备份运用程序:
$ crontab -l | grep rdiff 3 rdiff-backup /data/ /vault/
另一个常见用场是系统掩护,在我的 Slackware 桌面上,我每周五下午更新我确当地存储库目录:
$ crontab -l | grep slack 14 5 sudo slackpkg update
我还可以每三天在 15:00 运行一个 Ansible 脚本来整理我的下载文件夹:
$ crontab -l | grep ansible 15 / 3 ansible-playbook / home / seth / Ansible / cleanup.yaml
对打算环境的康健进行少量投资会大有帮助,有重复数据删除脚本、文件大小和/tmp目录监视器、照片调度器、文件移动器,以及许多您可以安排在后台运行的噜苏任务,以帮助保持系统整洁。
记住 cron 设置除了想出你为什么须要之外cron,根据cron我的履历,最困难的事情便是记住它的语法,对自己重复这个,一遍又一遍,直到你记住它:
Minutes, hours, date, month, weekday.Minutes, hours, date, month, weekday.Minutes, hours, date, month, weekday.