在我Linux之旅的初期,我开始欣赏操作系统的诸多命令行实用程序以及它们简化常规任务的方法。比如,在我的Windows服务器上备份应用程序常常须要高昂的附加软件包。相比之下,该tar命令使备份Linux相对容易,但是功能强悍且可靠。
但是,在备份电子短信系统时,我面临着另一个挑战。因为人们正在使用该系统,因而未能在工作日或下午进行备份。备份必须在午夜过后进行,而且必须可靠。我习惯了Windows任务管理器,但在Linux上我要用哪些呢?那时我才学会了cron。
使用cron在Linux上安排任务
Cron是一个用于手动执行预定命令的守护进程。学习怎么使用cron须要一些学习理解和实验,但很快我就使用cron来关掉我们的电子短信服务器,将数据备份到压缩的tar文件中,之后在下午3点重新启动电子电邮服务。
cron作业的命令储存在Linux系统上的crontab文件中,该文件一般坐落/etc/crontab中。使用$crontab-l显示crontab文件的内容。
使用$crontab-e编辑crontab文件。
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com
⚡ crontab -e
假如您之后改变主意,该怎么选择另一个编辑器?要使用的命令是select-editor。
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com
⚡ select-editor
个别系统默认使用Vi编辑器进行cron编辑。您可以使用环境变量覆盖此设置:
$ EDITOR=nano crontab -e
这容许您使用nano编辑器来编辑您的个人crontab(假如你还没有linux计划任务整点执行,则会手动为您创建一个)。
在插入整数值之前,所有crontab命令都有用星号表示的参数。第一个表示分钟,之后是小时、月中的某日、一年中的某月,最后是一周中的某日。
注释上面有一个哈希。Cron会忽视注释,因而它们是一种挺好的形式linux关机命令,可以让您自己记下命令的作用及其重要性。
一个cron作业示例
假定您想在每周三下午1点使用clamscan扫描您的主目录中的病毒和恶意软件。您还想在每周五下午5点备份您的主目录。使用cron和crontab文件可确保每周进行系统维护,无论您是否记得运行那些实用程序。
使用您自己的用户名而不是我的用户名“linuxmi”编辑您的crontab文件以包含以下内容:
# 扫描我的主目录是否有病毒
0 1 * * 3 clamscan -ir /home/linuxmi/
# 备份主目录
0 5 * * 5 tar -zcf /var/backups/home.tgz /home/linuxmi/
假如您使用的是nano编辑器,请使用Ctrl+O将文件写出并使用Ctrl+X退出编辑器来保存您的工作。
提示如下,说明成功保存了。
crontab:installingnewcrontab
编辑文件后,使用crontab-l列举您的cron文件的内容linux计划任务整点执行,以确保它已正确保存。
您可以为系统所需的任何作业创建crontab作业。这充分借助了cron守护进程。
使用crontab-r删掉目前的时程表
从Linux命令行调度
cron最难的部份是为这些领先的星号提供正确的值,但这早已不是哪些秘密了。
时间格式如下:
t1 t2 t3 t4 t5 program
* * * * *
- - - - -
| | | | |
| | | | +----- 星期中星期几 (0 - 6) (星期天 为0)
| | | +---------- 月份 (1 - 12)
| | +--------------- 一个月中的第几天 (1 - 31)
| +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)
使用者也可以将所有的设定先储存在文件中,用crontabfile的形式来设定执行时间。
据悉,大多数现代cron系统都具有常用值的快捷方法,包括:
还有cron的取代方案,包括anacron用于您希望定期运行但不按照特定计划运行的作业,以及用于一次性作业的at命令。
Cron是一个有用的任务调度系统,使用上去如同编辑文本一样简单。试试看吧!