菜鸟的shell-删除5天前的文件
本文最后更新于 2216 天前,其中的信息可能已经有所发展或是发生改变。

因为需求原因,要每天定时去删除指定目录下超过5天的文件。

刚开始我想用java,因为本职就是写java的,但是梳理了一下,卧槽java写删除文件居然要那么多(主要是懒)…..

于是乎,想到了shell,emmm,这问题来了,自己又不会,也没有学过shell,辣鸡学校出来的大专鸡那也只能自己厚着脸,自己去写,花了一下午百度+实践初成品的代码思路:

#!/bin/bash
location="/home/update/*"
find $location -type f -mtime+1 | xargs rm -rf
find $location -type d -mtime+1 | xargs rm -rf

ps:
location 是设置查找的目录
–mtime +30 是设置时间为30天前
-type f 这周查找的类型为文件
-type d 这周查找的类型为文件夹
N分钟前 -mini +N

然后测试运行也遇到几个问题…

首先就是你在window 上写shell脚本的话,然后上传到linux运行,会报错的–>”-bash: ./test.sh: /bin/sh^M: bad interpreter: No such file or directory”

度娘解决的办法是运行一下这个命令:

#sed -i 's/\r$//' test.sh

或者vi 脚本,底行模式,输入

set fileformat=unix

具体为什么出现这个错误的话,问题其实很简单,写java也会经常遇到的。

因为在windows下编写shell脚本回车符是\n\r,而linux下的回车符是\n,所以在linux下运行脚本的时候,需要修改下脚本的的编码格式。

然后就是自己遇到一个傻吊问题,可能写java习惯了 a = b,等于之间有空格,shell脚本也不认..

最后修改的代码如下,也感谢我公司shell大神的指导,也让自己入门了shell,哈哈哈哈哈哈….

#!/bin/bash
FILE_DRI='/home/update/'

#在/home/update/目录中查找更改时间在5日以前的文件并删除它们:
# find /home/update/ -type f  -mtime +5 -exec rm {} \;

for file_pwd in $(find $FILE_DRI -type f -mtime +5);
do
 file_size=$(du -sh $file_pwd | awk '{print $1}')
 rm -rf $file_pwd >/dev/null 2>&1
 if [ ! -f "$file_pwd" ]; then
	 rm_date=`date +"%F %T"`
	 echo "$rm_date | $file_pwd | $file_size 已删除"  >> /home/rm.log
 else 
    rm_date=`date +"%F %T"`
	echo "$rm_date | $file_pwd | $file_size 删除失败 " >> /home/rm.log
 fi
done

菜鸟的入门shell..记录撸码完毕…

如果需要让他定时的话,linux有自带的定时命令吧?好像是叫crontab定时执行任务命令。

 


评论

  1. Windows Firefox 64.0
    6 年前
    2018-12-25 7:45:20

    你应该换一个Windows下的编辑器了。

    • 博主
      大致
      Windows Chrome 63.0.3239.132
      6 年前
      2018-12-25 9:13:54

      习惯用notepad++……

      • 郭良俊只狗
        Windows Firefox 64.0
        6 年前
        2018-12-25 10:34:24

        Notepad++右下角右键就可以直接改Windows/Unix/Macintosh格式的啊!

        • 博主
          大致
          Windows Chrome 68.0.3440.75
          6 年前
          2018-12-26 13:26:41

          没注意看,写完脚本就直接放上去测试….现在需求又变了噗噗

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇