-l选项,查看当前用户的所有定时任务:
[xiluhua@vm-xiluhua][/home]$ crontab -l * * * * * /home/xiluhua/shell_script/logbk.sh
-e选项,创建或修改当前用户的定时任务:
[xiluhua@vm-xiluhua][/home]$ crontab -e crontab: no changes made to crontab
-u选项,查看(-l),修改(-e)指定用户的定时任务,(仅root管理员可用):
[root@vm-xiluhua][/home]$ crontab -u xiluhua -l * * * * * /home/xiluhua/shell_script/logbk.sh
-r选项,删除定时任务
配置文件:
[xiluhua@vm-xiluhua][~/shell_script]$ cat logbk.conf logbk.sh 1 /home/xiluhua/auto log
代码:
[xiluhua@vm-xiluhua][~/shell_script]$ cat logbk.sh
#!/bin/bash
#author:xiluhua
#since:20160619
#####################################################################
# $1: name of log*.sh to execute log-backuping
# $2: size triggers log backuping
# $3: directories need to log-backup
# $4: postfix with which log file will be backuped
#####################################################################
v_name=$0
v_name=${v_name##*/}
v_exce="exception@${v_name}"
v_nohup="/home/xiluhua/shell_script/nohup_logbk.out"
v_conf="/home/xiluhua/shell_script/logbk.conf"
v_date=".$(date +%Y%m%d'_'%H%M%S)"
declare -i v_isConfiged=1 #0true1false
[ ! -s $v_conf ] && echo "exception@conf.error:please check if $v_conf is available!" >> $v_nohup && exit 1
while read -r f1 f2 f3 f4
do
if [[ -n $f1 && $f1 == $v_name ]]
then
[ -z "$f2" ] && echo "$v_exce@2:size triggers log backuping can not be null" >> $v_nohup && exit 1
[ -z "$f3" ] && echo "$v_exce@3:directories need to log-backup can not be null" >> $v_nohup && exit 1
[ -z "$f4" ] && echo "$v_exce@4:log postfix can not be null" >> $v_nohup && exit 1
v_size=$f2
v_dir=$f3
v_postfix=$f4
v_isConfiged=0
break
fi
done<"$v_conf"
[ $v_isConfiged == 1 ] && echo "$v_exce@1:not appropriate configed" >> $v_nohup && exit 1
v_line=""
for (( i=0;i<80;i++))
do
v_line=$v_line"="
done
echo $v_line >> $v_nohup
echo "pid:"$$ >> $v_nohup
echo "v_size:"$v_size"M" >> $v_nohup
echo "v_dir:"$v_dir >> $v_nohup
echo "v_postfix:"$v_postfix >> $v_nohup
IFS=";"
echo "=== dirs listening ===" >> $v_nohup
for dir in $v_dir
do
echo "this.dir:"$dir >> $v_nohup
for postfix in $v_postfix
do
echo "find $dir -size +${v_size}M -name '*.$postfix'" >> $v_nohup
#find $dir -size +${v_size}M -name "*.$postfix" -exec gzip {} \;
for file in $(find $dir -size +${v_size}M -name "*.$postfix")
do
echo "log files to be backuped:" >> $v_nohup
echo $file >> $v_nohup
gzip -c $file > ${file}${v_date}.gz && echo > $file
done
#find $dir -size +${v_size}M -name "*.$postfix" -exec gzip {} \;
done
done
exit 0
来源:https://www.cnblogs.com/xiluhua/p/5680775.html