Linux 中怎么设置计划任务:cron 与 anacron
作为系统管理员,为了系统的安全我们希望服务器定期自动执行一些操作,比如每天自动备份系统文件,定期备份数据库,以及在未来某天让系统自动关机…………Linux就该这么学,linux下有很多命令能帮我们在未来某个特定时间让系统实现上述的操作,以及让系统定期执行某些操作。
在本篇中,我们会解释 cron 和 anacron,并向你展示如何在 Linux 中设置 anacron。我们也会比较这两个工具。
cron 在 Linux 设置时间任务
- 01
第一: cron 介绍 1、cron - 是一个用于运行计划任务如系统备份、更新等的守护进程。它适合在那些 24X7 不间断运行的机器如服务器上运行的计划任务。 2、命令/脚本被写在 cron 任务脚本中,它是在crontab 文件中被安排的。系统默认的 cromtab 文件是/etc/crontab ,但是每个用户也可以创建自己的 cromtab 文件来在特定时间运行用户定义的命令。
- 02
第二 : cron 如何设置 1、命令合使用方法 #crontab -u <-l, -r, -e> -u指定一个用户 -l列出某个用户的任务计划 -r删除某个用户的任务 -e编辑某个用户的任务 2、创建一个定时任务 要创建一份个人crontab 文件,只要输入: # crontab -e 30 3 * * * /bin/tar -jcf /tmp/backup.tar.gz /etc // 每天早上3点,备份/etc目录 # crontab -l
在 Linux 中设置 anacron
- 01
第一: anacron介绍 1、anacron 用于以天为单位的频率运行命令。它的工作与 cron 稍有不同,它假设机器不会一直开机。 2、cron 也适合在那些不会 24X7 运行如笔记本以及桌面电脑的机器上运行每日、每周以及每月的计划任务(LCTT 译注:不适合按小时、分钟执行任务)。 3、假设你有一个计划任务(比如备份脚本)要使用 cron 在每天半夜运行,也许你以及睡着,那时你的桌面/笔记本电脑已经关机。你的备份脚本就不会被运行。 4、如果你使用 anacron,你可以确保在你下次开启桌面/笔记本电脑的时候,备份脚本会被执行。
- 02
第二 :anacron 如何在 Linux 设置 1、anacron命令方法 anacron 任务被列在 /etc/anacrontab 中,任务可以使用下面的格式(anacron 文件中的注释必须以 # 号开始)安排。 #period delay job-identifier command ************************************************* 1.1 : period - 这是任务的频率,以天来指定,或者是 @daily 、@weekly、@monthly 代表每天、每周、每月一次。 你也可以使用数字:1 - 每天、7 - 每周、30- 每月,或者N - 几天。 1.2: delay - 这是在执行一个任务前等待的分钟数。 1.3: job-id - 这是写在日志文件中任务的独特名字。 1.4: command - 这是要执行的命令或 shell 脚本。2 、如何看示列文件 要浏览示例文件,输入: $ ls -l /var/spool/anacron/ total 12 -rw------- 1 root root 9 Jun 1 10:25 cron.daily -rw------- 1 root root 9 May 27 11:01 cron.monthly -rw------- 1 root root 9 May 30 10:28 cron.weekly anacron 会检查任务是否已经在 period 字段指定的时间被被执行了。如果没有,则在等待 delay 字段中指定的分钟数后,执行 command字段中指定的命令。 一旦任务被执行了,它会使用 job-id (时间戳文件名)字段中指定的名称将日期记录在 /var/spool/anacron 目录中的时间戳文件中。 3、 现在让我们看一个例子。 这个会每天运行 /home/aaronkilik/bin/backup.sh 脚本: @daily 10 example.daily /bin/bash /home/aaronkilik/bin/backup.sh 当机器在 backup.sh 期望被运行时是关机的,anacron 会在机器开机十分钟之后运行它,而不用再等待 7 天。
- 03
第三 : anacrontab 文件的重要变量 START_HOURS_RANGE - 这个设置任务开始运行的时间范围(也就是任务只在这几个小时内运行)。 RANDOM_DELAY - 这定义添加到用户定义的任务延迟的最大随机延迟(默认为 45)。 这是你的 anacrontab 文件可能看上去的样子。 Anacron – /etc/anacrontab :
cron 以及 anacron 的比较
- 01
cron 和 anacron 主要的区别在于 cron 能在那些持续运行的机器上有效地运行,而 anacron 是针对那些会在一天内或者一周内会关机的机器。