红联Linux门户
Linux帮助

LINUX定时清理文件定时任务

发布时间:2017-05-29 10:51:41来源:linux网站作者:wenxuechaozhe
任务场景
文件夹下持续进入文件,每隔10分钟进行文件清理操作,压缩转移至备份服务器。
 
实现代码
#!/bin/bash
targetDIR=/aaa
backDIR=/bbb
cd $ targetDIR
for name in *
do
nowTime=`date "+Y%m%d_%H%M%S"`
cd $name
if ls *.txt > /dev/null 2>&1 ; then
mv *.txt $backDIR/$name/
tar -zcvf $nowTime"_"$name.tar.gz *.txt
rm *.txt
cd $targetDIR
done
exit 0
 
代码解析
循环遍历文件夹进行文件获取,尤其需要注意该部分:
if ls *.txt > /dev/null 2>&1 ; then
ls所有以.txt为后缀的文件,如果不存在,将标准错误重定向到标准输出,这里2>&1 的意思就是将标准错误也输出到标准输出当中。重定向中 0-标准输出,1-标准输出,2-标准错误,而No such file or directory是一个标准错误。如果未添加该部分,如果未查到文件,则会导致后续命令无法顺序执行。
 
本文永久更新地址:http://www.linuxdiyf.com/linux/31143.html