加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

shell按照时间排序,保留最新的10个文件并删除其余文件

发布时间:2020-12-15 21:28:23 所属栏目:安全 来源:网络整理
导读:shell按照时间排序,保留最新的10个文件并删除其余文件 #!/bin/sh basedir=$(cd dirname $0 ;pwd) DATE=$(date "+%F %H:%M") path=/data/ceshi save_num=5 line=$(ls -l $path|sed 1d|wc -l) if [ ! $basedir/del_name.log ];then touch $basedir/del_name.l
shell按照时间排序,保留最新的10个文件并删除其余文件
#!/bin/sh
basedir=$(cd dirname $0;pwd)
DATE=$(date "+%F %H:%M")
path=/data/ceshi
save_num=5
line=$(ls -l $path|sed 1d|wc -l)
if [ ! $basedir/del_name.log ];then
touch $basedir/del_name.log
fi
echo "--------------------$DATE------------------------" >>$basedir/del_name.log
if [ $save_num -lt $line ];then
echo "----------------delete path is $path-------------------" >>$basedir/del_name.log
ls -t $path|awk "{if(NR>$save_num){print $1}}" >>$basedir/del_name.log
cd $path
ls -t|awk "{if(NR>$save_num){print $1}}"|xargs rm -rf
else
echo "$path wenjian number is ok" >>$basedir/del_name.log
fi

固定格式文件,某个名字的保留几个可以参考下面的:
#!/bin/sh
basedir=$(cd dirname $0;pwd)DATE=$(date "+%F %H:%M")path=/opt/app/backupls $path|awk -F ‘-‘ ‘{print $1}‘|sort -n|uniq -c|sort -nr >$basedir/del_backup.logwhile read linedolines=$(echo "$line"|awk ‘{print $1}‘)name=$(echo "$line"|awk ‘{print $2}‘)if [ $lines -gt 2 ];thencd $pathname_all=$(ls -t|grep "$name"|awk ‘{if(NR>2){print $1}}‘)rm -f $name_allecho "$DATE Deleted:$name_all" >>$basedir/del_backup.log fidone < $basedir/del_backup.log

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读