shell实现linux回收站的功能
shell实现linux回收站的功能
下载:
https://gitee.com/LoongWang/shellrecycling/repository/archive/master.zip
代码:
1 #/usr/bin/env bash 2 3 #定义 4 #定义回收站目录 5 RecyclingDir='/usr/local/recycling/' 6 #定义回收站log文件夹 7 RecyclingLogDir='/var/log/recyclinglog/' 8 #定义回收站log文件 9 RecyclingLog="/var/log/recyclinglog/$(whoami)" 10 #定义回收站家目录 11 UserRecyclingDir="/usr/local/recycling/$(whoami)" 12 #定义返回码 13 ReturnCode=0 14 15 #程序开始 16 #检测主文件是否存在、没有则新建 17 18 for DirName in $RecyclingLogDir $RecyclingDir $UserRecyclingDir 19 do 20 if [ ! -d $DirName ] 21 then 22 if [[ $DirName == "$RecyclingLogDir" ]] 23 then 24 mkdir $RecyclingLogDir 25 chmod 777 $RecyclingLogDir 26 continue 27 fi 28 #将Log写入文件中 29 echo "$(date +"%F %H:%M:%S") - Make Dirctory" >> $RecyclingLog 30 chmod 700 $RecyclingLog 31 #创建目录 32 mkdir $DirName 33 34 if [ $? -eq 0 ] 35 then 36 echo "$(date +"%F %H:%M:%S") - Make Dirctory $DirName Ok" >> $RecyclingLog 37 else 38 echo "$(date +"%F %H:%M:%S") - Make Dirctory $DirName Fail" >> $RecyclingLog 39 echo "$(date +"%F %H:%M:%S") - Make Dirctory Fail" 40 41 ReturnCode=127 42 echo -e "The Linux Comamnd is error , returncode:127\n" 43 echo "$(date +"%F %H:%M:%S") - Make Dirctory Fail" 44 echo "Your can see log the $RecyclingLog" 45 46 exit $ReturnCode 47 fi 48 chmod 777 $DirName 49 50 if [[ $DirName == $UserRecyclingDir ]] 51 then 52 chmod 700 $DirName 53 fi 54 55 fi 56 done 57 58 #移动目录至回收站 59 if [ $# -eq 0 ] 60 then 61 echo "Usage:$0 file1 file2 file3 ..." 62 ReturnCode=1 63 else 64 #循环开始 65 for DelFile in $@ 66 do 67 #判断是否存在文件 68 if [ -e $DelFile ] 69 then 70 echo -e "\n$(date +"%F %H:%M:%S") - Delete $DelFile" >> $RecyclingLog 71 72 mv $DelFile $UserRecyclingDir/$(date +"%F:%H:%M:%S")-$DelFile 73 74 #判断命令是否执行成功 75 if [ $? -eq 0 ] 76 then 77 #命令执行成功 78 echo -e "\n$(date +"%F %H:%M:%S") - Delete $DelFile - OK" >> $RecyclingLog 79 echo -e "$(date +"%F %H:%M:%S") - Delete $DelFile - OK" 80 else 81 #命令执行失败 82 echo -e "\n$(date +"%F %H:%M:%S") - Delete $DelFile - Fail" >> $RecyclingLog 83 echo -e "\n$(date +"%F %H:%M:%S") - Delete $DelFile - Fail" 84 ReturnCode=1 85 fi 86 else 87 #不存在文件 88 echo -e "\n$(date +"%F %H:%M:%S") - $DelFile is not exists" >> $RecyclingLog 89 echo -e "\n$(date +"%F %H:%M:%S") - $DelFile is not exists" 90 ReturnCode=1 91 fi 92 done 93 94 exit $ReturnCode 95 fi
1 #!/usr/bin/env bash 2 3 RecyclingDir="/usr/local/recycling" 4 AudoDelRecyclingLog="/var/log/auto_del_recycling.log" 5 errorlog="error.log" 6 7 if [ `id -u` -eq 0 ] 8 then 9 for DirName in `ls $RecyclingDir` 10 do 11 if [ -d $RecyclingDir\/$DirName ] 12 then 13 for FileName in `ls $RecyclingDir\/$DirName` 14 do 15 16 NowDate=$(date +"%s") 17 GetFile=$(stat -c %X $RecyclingDir\/$DirName\/$FileName) 18 DifferTime=$(echo "value=0;$NowDate - $GetFile" | bc) 19 20 if [ $DifferTime -gt 2592000 ] 21 then 22 echo -e "$(date +"%F_%H:%M:%S")-Deleteing $RecyclingDir $DirName(type $DirName is:$(file $RecyclingDir\/$DirName\/$FileName))" >> $AudoDelRecyclingLog 23 rm -rf $RecyclingDir\/$DirName\/$FileName 24 echo -e "$(date +"%F_%H:%M:%S")-Deleted $RecyclingDir $DirName $FileName OK" >> $AudoDelRecyclingLog 25 fi 26 done 27 28 29 else 30 echo -e "$(date +"%F_%H:%M:%S")-$DirName is not dirctory(type $DirName is:$(file $RecyclingDir\/$DirName))" >> $AudoDelRecyclingLog 31 fi 32 done 33 else 34 echo -e "$(date +"%F_%H:%M:%S")-The User ID is not root,please login root exec(uid:`id -u`)" >> $errorlog 35 fi
欢迎转发!
请保留源地址: https://www.cnblogs.com/NoneID