Linux下自动化工具 cron jobs 的使用方法解析
短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
Cron jobs的简单使用
cron jobs 可以将任何的工作设定为定期自动化执行,如工作日志、备份、密码查核、硬盘空间查核等等, 设定且利用这些自动化的工作可以大幅降低系统管理者的日常工作,这些工作通常可以设定在半夜执行以避免在系统尖峰时刻与正常工作共抢系统资源。
############################
# crontab 使用
############################
$ export EDITOR=vi # 设定 EDITOR 系统参数,在此请输入个人习惯使用的文字编辑器
$ crontab -e # 编写个人 cron jobs table
# 此时 crontab 会利用 $EDITOR 这个系统参数,启动文字编辑器
*/1 * * * * date >> /tmp/date # 此语法表示每一分钟执行 date 一次。
$ crontab -l # 列出当前个人的 crontab 设定档
$ cat /tmp/date
$ cat /tmp/date # 请等待一分钟后执行
$ rm /tmp/date
$ cat /tmp/date
############################
# crontab 格式说明
############################
* * * * * date >> /tmp/date
分 时 日 月 周 执行的命令
# 每个月的 15 号上午 10 点 30 分执行,语法为
30 10 15 * * [执行行的命令]
# 星期日早上 3 点 5 分执行,语法为
5 3 * * 7 [执行的命令]
# 每五分钟执行一次,语法为
*/5 * * * * [执行的命令]
以下摘取于 man 5 crontab 用来说明各档位允许的值
field allowed values
----- --------------
minute 0-59
hour 0-23
day of month 1-31
month 1-12 (or names, see below)
day of week 0-7 (0 or 7 is Sun, or use names)
以下是我的系统自动执行date函数截图:
友情提示:如果执行不成功,可试着将/tmp/date改成当前用户可读写路径。
系統定期的 cron jobs
$ cat /etc/crontab
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file.
# This file also has a username field, that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
25 6 * * * root test -e /usr/sbin/anacron || run-parts --report /etc/cron.daily
47 6 * * 7 root test -e /usr/sbin/anacron || run-parts --report /etc/cron.weekly
52 6 1 * * root test -e /usr/sbin/anacron || run-parts --report /etc/cron.monthly
#
############################
# /etc/crontab 说明
############################
# 25 6 * * * 每天早上六点 25 分,执行存放在 /etc/cron.daily 下安排的所有工作
# 47 6 * * 7 星期天早上六点 47 分,执行存放在 /etc/cron.weekly 下安排的所有工作
# 52 6 1 * * 每个月一号早上六点 52 分,执行存放在 /etc/cron.monthly 下安排的所有工作
您只要将您所编写好的 shell script 存放在 /etc/cron.daily 就可以达到每天定期执行的效果。 在此笔者提供一备份的 shell script 提供给读者参考。 你可以将他放置在 /etc/cron.weekly 这样就可每周定期执行备份工作:
$ edit /etc/cron.weekly/backup-utils
#!/bin/bash
SOURCE_DIR="/etc /var /home" # 填入你想备份的目录
BACKUP_DIR="/backup" # 填入你想备份到那个目录下,此处预设为 /backup
BACKUP_NAM="BACKUP-" # 填入你想备份后的文档名前缀
DATE=$(date +%m%d)
FILE_NAME="${BACKUP_DIR}/${BACKUP_NAM}${DATE}.tgz"
tar cvfz $FILE_NAME $SOURCE_DIR
$ chmod +x /etc/cron.weekly/backup-utils
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341