亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

是否可以對文件夾應用計數功能,然后在文件夾超過限制時刪除文件?

是否可以對文件夾應用計數功能,然后在文件夾超過限制時刪除文件?

烙印99 2021-04-12 09:23:23
我正在嘗試編寫一個腳本,當目錄超過特定限制時,該腳本可以從目錄中刪除舊文件。這是我的劇本#!/bin/bash#incremental backup of upload folder onlyLIMIT=2TIME=`date +%b-%d-%y%s`FILENAME=backup-$TIME.tgzSRCDIR=/home/Man/blablaDESDIR=/home/Man/newdirEXCFILE=/home/Man/blabla/upif [ $LIMIT -gt 2 ]; then cd $DESDIRls -lt | grep .tgz | tail -n 1 | xargs -r rmtar -cvzf $DESDIR/$FILENAME $SRCDIR --exclude=$EXCFILE elsetar -cvzf $DESDIR/$FILENAME $SRCDIR --exclude=$EXCFILE fi但它無法正常工作,它會創建備份,但在dir超出限制后不會刪除舊文件
查看完整描述

2 回答

?
慕少森

TA貢獻2019條經驗 獲得超9個贊

您的問題尚不清楚(我們只能猜測“極限”是什么意思,但我們不明白這是什么),并且缺乏動力。

在系統調用級別(請參閱syscalls(2)),將相關的系統調用依次為setrlimit(2)和signal(7)相關的調用(例如sigaction(2))。RLIMIT_FSIZESIGXFSZ

因此,您可以使用ulimit內置函數和trap一個內置函數。但是,由Shell腳本執行的程序可能會更改文件大小限制,并可能捕獲SIGXFSZ信號。

注意,目錄的大?。ㄓ蓅tat(2)給出,因此stat(1)和ls(1))不是其文件的累積大?。ㄒ驗槟承┪募梢栽?em>多個目錄中進行硬鏈接;索引節點-參見inode(7))。它只是目錄條目的大小。

或者,您可以計算文件的累積大?。ㄊ褂胐u(1)或find(1)或gawk(1)),然后根據該文件采取一些措施,也許刪除一些大文件(但可以考慮-也許通過決定忽略它們) -在腳本執行期間寫入文件或目錄的其他進程)。

也許您可能對磁盤配額感興趣(請參閱quotactl(2),quota(1),quotacheck(8)))

您可以進行增量備份。為此,您可以使用tar(1)以外的其他實用程序(例如dar,afio,...)。注意,mv(1)&cp(1)&tar有一些--backup選擇。也許您可能考慮使用logrotate(8)處理不斷增長的日志文件。


查看完整回答
反對 回復 2021-04-16
  • 2 回答
  • 0 關注
  • 291 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號