1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
#!/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
|
本文转自 暗黑魔君 51CTO博客,原文链接:http://blog.51cto.com/clovemfong/1197493,如需转载请自行联系原作者