iT邦幫忙

0

linux 檔案管理

檔案路徑為/var/log/123456
讓123456這個資料夾裡的檔案保存40天
40天之後自動刪除第一個檔案
有相關指令嗎

看更多先前的討論...收起先前的討論...
1、用bash做
https://nicaw.wordpress.com/2013/04/18/bash-backup-rotation-script/

2、用python做

3、用Perl.................(沒例子了)
謝謝~ 我測試看看
by2048 iT邦高手 1 級 ‧ 2019-07-30 12:44:47 檢舉
#~/bin/bsh
find /var/log/123456 -name '*' -mtime +40 -exec rm {} \;

排程每天執行,刪掉40天前的檔案
請問如果123456裡面有8個檔案
這樣做也可以嗎?
by2048 iT邦高手 1 級 ‧ 2019-08-08 10:57:35 檢舉
看日期如符合就刪,不管幾個檔案
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
japhenchen
iT邦超人 1 級 ‧ 2019-07-30 08:19:27
最佳解答

用PYTHON

        today = datetime.datetime.now()  #現在時間
        bkpath='/backuppath' #備份路徑
        for od in os.listdir(bkpath): #列舉路徑裡的所有檔案
            if os.isfile(od) and os.exists(od): #確定是檔案且存在
                vd = datetime.datetime.fromtimestamp(os.stat(od).st_ctime)
                #取得檔案建立時間vd                
                diffdays = today-vd  #計算跟現在的時間差
                if diffdays.days > 10 : #如果檔案年紀大於10天
                    try:
                        os.remove(od) #刪除
                    except:
                        print('刪除失敗')

感謝~~~

我要發表回答

立即登入回答