bash编程之 crontab 定时任务
2017-07-13 11:29
375 查看
crontab 定时任务
# 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 * * * * bash脚本名 每5分钟执行
0 2 * * * bash脚本名 每天凌晨2点执行
0 2 7 * * bash脚本名 每月7号凌晨2点执行
注: day of month + month 与 day of week 不同时使用
crontab命令:
-l: 显示当前用户的任务列表
-l -u username 显示其它用户的任务列表
-e:编辑任务
-r: 移除所有任务
练习.:每周2,4,7备份/var/log/messages文件至/backup/messages/目录中,文件名保存为形如messages-2017-03-27.tar.xz
案例:重定向rm命令,使被删除的文件移动到recycle_bin目录。再写一个定时任务每天删除recycle_bin目录中7天前的文件
1. 添加文件/usr/local/recycle_bin/recycle_bin.sh
2. 重定向rm命令
修改~/.bashrc, 如有要对所有用户生效就修改/etc/.bashrc
alias rm='rm -i' 改为:
alias rm='/usr/local/recycle_bin/recycle_bin.sh'
resource ~/.bashrc
3. 添加文件/usr/local/recycle_bin/clear_recycle_bin.sh
4.添加定时任务
crontab -e
30 11 */1 * * /usr/local/recycle_bin/clear_recycle_bin.sh
# 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 * * * * bash脚本名 每5分钟执行
0 2 * * * bash脚本名 每天凌晨2点执行
0 2 7 * * bash脚本名 每月7号凌晨2点执行
注: day of month + month 与 day of week 不同时使用
crontab命令:
-l: 显示当前用户的任务列表
-l -u username 显示其它用户的任务列表
-e:编辑任务
-r: 移除所有任务
练习.:每周2,4,7备份/var/log/messages文件至/backup/messages/目录中,文件名保存为形如messages-2017-03-27.tar.xz
0 0 * * 2,4,7 /bin/cp -a /var/log/messages backup/messages/messages-`/bin/date "+%Y-%m-%d"`
案例:重定向rm命令,使被删除的文件移动到recycle_bin目录。再写一个定时任务每天删除recycle_bin目录中7天前的文件
1. 添加文件/usr/local/recycle_bin/recycle_bin.sh
#!/bin/bash count=0 dir=/tmp if [ -d /tmp/recycle_bin ];then dir=/tmp/recycle_bin/`date +%F-%H-%M-%S` mkdir -p $dir for i in $*;do count=`echo $i|grep "^-"|wc -l` if [ $count -ne 1 ];then mv $i $dir else count=0 fi done else mkdir -p /tmp/recycle_bin dir=/tmp/recycle_bin/`date +%F-%H-%M-%S` mkdir -p $dir for i in $*;do count=`echo $i|grep "^-"|wc -l` if [ $count -ne 1 ];then mv $i $dir else count=0 fi done fi
2. 重定向rm命令
修改~/.bashrc, 如有要对所有用户生效就修改/etc/.bashrc
alias rm='rm -i' 改为:
alias rm='/usr/local/recycle_bin/recycle_bin.sh'
resource ~/.bashrc
3. 添加文件/usr/local/recycle_bin/clear_recycle_bin.sh
#!/bin/bash clear_dir=/tmp/recycle_bin/`date -d "7 day ago" +"%Y-%m-%d"`* #clear_dir=/tmp/recycle_bin/`date %Y-%m-%d`* /bin/rm -rf $clear_dir
4.添加定时任务
crontab -e
30 11 */1 * * /usr/local/recycle_bin/clear_recycle_bin.sh
相关文章推荐
- crontab与bash环境变量不一致导致的无法定时执行任务~
- linux定时任务--crontab的用法
- crontab命令简介 linux定时设置 Cron实现自动任务
- solaris 定时任务 crontab
- LINUX定时任务Crontab详解
- LINUX定时任务Crontab详解
- linux中定时执行任务crond及crontab命令的使用
- Linux定时执行任务命令概述:at和crontab
- Solaris10 为用户添加定时任务(crontab)
- crontab 定时任务
- Crontab 定时执行任务 (
- Ubuntu 使用crontab定时任务
- linux 定时任务 crontab 详细解释
- linux定时任务--crontab的用法
- Linux下使用crontab来执行定时任务计划----执行每晚12点多执行移动log日志文件操作
- crontab 定时任务注意几点
- crontab定时执行bash脚本出现错误 手动没有问题
- linux 定时任务 crontab 详细解释
- crontab的用法---linux定时任务
- Linux定时执行任务命令概述:at和crontab