计划任务

计划任务
让计算机在指定的时间执行指定的事情

分类
一次性计划任务 at 临时的计划任务
周期性计划任务 cron

配置 服务器重启一般都是晚上 凌晨2点
at 时间

at 20:00

at> poweroff
at> ctrl d
job 2 at 2017-04-12 20:00

at 02:00

at> reboot
at>
job 3 at 2017-04-13 02:00

时间的写法
HH:MM //18:30
midnight //0点 (午夜)
noon //12点 (中午)
teatime //16点(下午4点)
AM 或 PM后缀指定一天的上午或下午。 //at 2:00 pm
MMDDYY 、 MM/DD/YY 或 DD.MM.YY
now + 计数 时间单位 的式样,这里的时间单位可以是 minutes 、hours 、 days 或 weeks, //at now + 3 hours(从现在开始起三个小时后)

at 4pm + 3 days //三天以后的下午4点执行一个任务
at 2am + tomorrom //明天上午2点
at 10am Jul 31 //7月31日上午10点

1.凌晨2点备份/etc目录 到 /tmp格式为 etc.tar.xz

at 02:00

at> tar cvJf /tmp/etc.tar.xz /etc
at>
job 4 at 2017-04-13 02:00

查看所有用户的计划任务

atq # at -l

2 2017-04-12 20:00 a root
前面的数字就是工作号

查看某个计划任务的详细内容

at -c 工作号

删除计划任务

atrm 工作号 …

at -d 工作号 …

权限管理 安全
/etc/at.allow 白名单 只允许在此名单内的用户使用at 此文件本身不存在
/etc/at.deny 黑名单 在此名单内的用户不可以使用at
两个文件都不存在,只有root用户可以使用at
两个文件都存在,allow优先执行

周期性计划任务 循环性计划任务 主要用于备份数据
crontab
usage:crontab [-u user] [ -e | -l | -r ]
-u define user //指定用户
-e edit user’s crontab //编辑计划任务
-l list user’s crontab //查看计划任务
-r delete user’s crontab //删除计划任务

crontab -e 编辑周期性计划任务的内容 man 5 crontab

时间
分钟 小时 日 月 周 动作
0-59 0-23 1-31 1-12 0-7 命令或脚本(写绝对路径)
30 2 1 * * rm -rf /tmp/* //每月1号的2:30分删除/tmp目录下的所有文件
5 * * 6 3 rm -rf /tmp/* //每年6月的每周三每小时的5分钟删除/tmp目录下的所有文件
6 6 6 * 6 rm -rf /tmp/* //每月6号是周6的6点6分钟删除/tmp目录下的所有文件

  • 任何时刻
  • 一段时间 // 8-11 * * * * rm -rf /tmp/* //每小时的8分钟 9分钟 10分钟 11分钟 删除/tmp目录下所有文件
    , 分隔 // 1,2,5,9 * * * * rm -rf /tmp/* //每小时的1分钟 2分钟 5分钟 9分钟 删除/tmp目录下所有文件
    0-4,8-12 //
    0-23/2 //1 0-23/2 * * * rm -rf /tmp/* // “0,2,4,6,8,10,12,14,16,18,20,22”).
    */2 //1 /2 * * * rm -rf /tmp/
  • 0-23 * * * rm -rf /tmp/*
  • /1 * * * rm -rf /tmp/

时间的写法
The time and date fields are:

  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)

1.每个星期三的下午10:00备份/etc/目录到/tmp目录叫2017-04-12_etc.tar.gz备份文件包含当天日期
crontab -e

  • 22 * * 3 /usr/bin/tar cvzf /tmp//usr/bin/date +%F_etc.tar.gz /etc

2.只保留最近1个月的日志文件
crontab -e
1 * * * * find /var/log -mtime +30 |xarge -i rm -rf {}

3.每月1号的凌晨2点半清空临时盘
crontab -e
30 2 1 * * /usr/bin/rm -rf /tmp/*

4.每周每天的晚上8:10关闭电脑,除了星期六,星期五,星期日的17:10关闭电脑
crontab -e
10 20 * * 1-4 /usr/sbin/poweroff
10 17 * * 5,7 /usr/sbin/poweroff

5.jim用户每天在家目录创建一个以日期命名的目录20170412
crontab -u jim -e
1 0 * * * /bin/mkdir /home/jim/date +%Y%m%d

查询周期性计划任务的内容
crontab -l //查看当前用户
crontab -u jim -l //查看指定用户

删除某用户的所有周期性计划任务(删除某个计划任务crontab -e 进入文本删除)
crontab -r //当前用户
crontab -u jim -r //指定用户

系统定义的计划任务
更新whatis数据库
更新updatedb数据库
日志定期轮转
清理/tmp /var/tmp
收集系统的状态信息

vim /etc/crontab 配置文件

For details see man 4 crontabs

Example of job definition:

.---------------- minute (0 - 59)

| .------------- hour (0 - 23)

| | .---------- day of month (1 - 31)

| | | .------- month (1 - 12) OR jan,feb,mar,apr …

| | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

| | | | |

* * * * * user-name command to be executed

*/5 * * * * root 命令 //每隔5分钟以root身份去执行命令

以下目录内可以存在脚本 该脚本就会按照时间去执行
cd /etc
cron.hourly/ //每小时
cron.weekly/ //每周日
cron.daily/ //每天
cron.monthly/ //每月1号

cat /etc/cron.daily/tmpwatch 超过一个月不使用的文件删除

权限管理
/etc/cron.allow 白名单 只允许在此名单内的用户使用crontab 此文件本身不存在
/etc/cron.deny 黑名单 在此名单内的用户不可以使用crontab
两个文件都不存在,只有root用户可以使用crontab
两个文件都存在,allow优先执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值