日期:2014-05-16 浏览次数:20692 次
#!/bin/csh -f
###########################################
### 手工设置变量 ###
###########################################
# 删除还是备份 0是备份,1是删除
setenv OPERATE_TYPE 0
# 备份天数或者删除天数例如30代表备份30天后的数据或者是删除30后的数据
setenv BCK_LOGS_DAYS 30
# 设置日志保存路径
setenv BCK_LOGS_ROOT /home/public/temp/logstemp
# setenv BCK_LOGS_ROOT ~/bin/logs
# 设置日志保存文件夹
setenv mkdirdate `date +%Y-%m-%d`
###########################################
### 程序运行日志备份 ###
###########################################
# 切换工作路径
set bl_path="`dirname $0`"
cd $bl_path
# 得到相比较时间
set now_time="date -d '-30 day' +%Y-%m-%d"
echo "得到相比较的时间"
# 备份操作
if ($OPERATE_TYPE == 0) then
echo "得到操作类型"
# 创建临时文件,记录符合条件的日志名称
touch temps.log
echo "成功创建临时文件"
# 记录文件名到文件
ls |awk '/.log./' > temps.log
echo "成功写入文件"
#读记录
while read line
do
echo "成功读取文件名称"
file_name=`${line}##*.`
echo "成功文件名称中的日期"
if [ $file_name < now_time ]
then
# 判断文件夹是否存在,存在直接备份,不存在则创建
if [ !-d $BCK_LOGS_ROOT/$file_name ]
then
mkdir -p $BCK_LOGS_ROOT/${line}
echo "成功创建文件夹"
fi
#打包文件
tar -zcvf ${line}.tar ${line}
mv ${line}.tar ${BCK_LOGS_ROOT}/${file_name}
echo "成功备份到指定文件夹"
# 删除已压缩备份的日志文件
rm -f ${line}
echo "成功删除已经备份的文件"
echo "拷贝任务完成!"
else
end
fi
done < temps.log
# 删除临时文件
rm -f temps.log
fi
# 删除操作
if ($OPERATE_TYPE = 1) then
while read line
do
echo
file_name=`${line}##*.`
if [ $file_name < now_time ]
then
rm -f ${line}
else
end
fi
done < temps.log
# 删除临时文件
rm -f temps.log
endif
set lines=`cat /etc/passwd`
set i=1
while ( $i