当前位置: 首页 > 编程笔记 >

Shell脚本实现删除一年前文件功能分享

干照
2023-03-14
本文向大家介绍Shell脚本实现删除一年前文件功能分享,包括了Shell脚本实现删除一年前文件功能分享的使用技巧和注意事项,需要的朋友参考一下


#!/bin/bash

#Description: delete files

#=====定义当前年份,月份以及文件所在目录=====#

currentYear=`date +%Y`                                        

currentMonth=`date  +%m |awk -F'0' '{print $2}'`   

videodir=/var/video                                                    

#======定义一个转换函数,用于将月份缩写转换为数字表示========#

function month2num(){

case $file_month in

Jan)

file_month=1

;;

Feb)

file_month=2

;;

Mar)

file_month=3

;;

Apr)

file_month=4

;;

May)

file_month=5

;;

Jun)

file_month=6

;;

Jul)

file_month=7

;;

Aug)

file_month=8

;;

Sep)

file_month=9

;;

Oct)

file_month=10

;;

Nov)

file_month=11

;;

Dec)

file_month=12

;;

*)

echo "Oh,Are you kidding me?!"

exit 1

;;

esac

}

#=====定义上一年年份以及上一年的所有文件列表=====#

lastYear=$[$currentYear-1]                                                                   

lastYearFiles=`/bin/ls -l $videodir/ |grep $lastYear |awk -F' ' '{print $9}'`

#===== 删除上一年的文件,今天为2013年5月,则删除2012年5月之前的所有文件(1-4月)=====#

for lastfile in `echo $lastYearFiles`                                    

do

file_month=`/bin/ls -l $videodir/$lastfile  |awk  -F' ' '{print $6}'`

month2num

if [ $file_month -lt $currentMonth ]

then

rm -rf $videodir/$lastfile

fi

done

#=====删除非上一年以及非今年的所有文件=====#

otherYearFiles=`/bin/ls -l $videodir/ |grep -v $lastYear |awk -F' ' '{print $9}'`

for otherfile in `echo $otherYearFiles`

do

file_year_format=`/bin/ls -l $videodir/$otherfile  |awk  -F' ' '{print $8}'|wc -c`

if [ $file_year_format -eq 5 ]

then

rm -rf $videodir/$otherfile

fi

done

 类似资料:
  • 本文向大家介绍shell脚本实现文件锁功能,包括了shell脚本实现文件锁功能的使用技巧和注意事项,需要的朋友参考一下 1.背景 当多个进程可能会对同样的数据执行操作时,这些进程需要保证其它进程没有在操作,以免损坏数据。通常,这样的进程会使用一个“锁文件”,也就是建立一个文件来告诉别的进程自己在运行,如果检测到那个文件存在则认为有操作同样数据的进程在工作。这样的问题是,进程不小心意外死亡了,没有清

  • 本文向大家介绍Shell脚本实现递归删除空文件夹,包括了Shell脚本实现递归删除空文件夹的使用技巧和注意事项,需要的朋友参考一下 有时我们需要递归删除空文件夹,网上找了一下,没有发现比较好的Shell脚本,于是自己动手写了一个 脚本 脚本的内容很简单,就是遍历目录,找出空文件夹,然后删除。 使用 假如脚本文件为dedr.sh,我们测试的文件结构为: 运行脚本: 删除的文件: 结果: 我们可以看到

  • 本文向大家介绍Shell脚本实现删除邮件队列,包括了Shell脚本实现删除邮件队列的使用技巧和注意事项,需要的朋友参考一下 最近遇到了一个麻烦事:机器上邮件队列里老是被塞满,但是又不知道是什么地方发邮件写入的,十分蛋疼,没办法,只有临时处理一下了,写了个删除邮件的脚本rm_mqueue.sh。

  • 本文向大家介绍Ruby实现的一个强大的批量删除文件脚本分享,包括了Ruby实现的一个强大的批量删除文件脚本分享的使用技巧和注意事项,需要的朋友参考一下 最近打包服务器上的apk包又增多了,每次手动rm操作过于麻烦,于是花了几分钟写了一个可以对指定目录下根据最后修改时间和通配符匹配进行批量删除的脚本。将这个脚本加入crontab中之后,以后就再也不用担心多余的安装包占用磁盘空间了。 简短的代码 如何

  • 本文向大家介绍Shell脚本实现自动修改IP、主机名等功能分享,包括了Shell脚本实现自动修改IP、主机名等功能分享的使用技巧和注意事项,需要的朋友参考一下 作为一名Linux SA,日常运维中很多地方都会用到脚本,而服务器的ip一般采用静态ip或者MAC绑定,当然后者比较操作起来相对繁琐,而前者我们可以设置主机名、ip信息、网关等配置。修改成特定的主机名在维护和管理方面也比较方便。如下脚本用途

  • 本文向大家介绍Shell脚本模拟多线程功能分享,包括了Shell脚本模拟多线程功能分享的使用技巧和注意事项,需要的朋友参考一下 说明:{} 这部分语句被放入后台作为一个子进程执行,这部分几乎是同时完成的,当fifo中10个空行读完后 while循环 继续等待 read 中读取fifo数据,当后台的10个子进程后,按次序排队往fifo输入空行,这样fifo中又有了数据,for语句继续执行。