自動的に10GBを超えるフォルダ内のすべてのファイルを削除しますか?


2

私はDigitalOcean($ 5 /月)からの小さいサーバーを持っています、そして私はそのサーバーの私の20GBのうち約16GBしか持っていません。私はいくつかの小さなファイル(3-6Mb)を自動的にダウンロードするサイトをホスティングするでしょう、そして最終的にダウンロードフォルダは大きくなるでしょう。毎日自動的に実行されて特定のフォルダをチェックするような、ある種のcronジョブやスクリプトがあります。そのフォルダがX GBを超えると、そのフォルダを消去しようとしますか(一部のファイルが使用中の可能性があります)

それが問題であれば私はUbuntu 15を実行しています。ヒントをありがとう。

回答:


2

私はそれを実行するスクリプトを書きました - あなたがそれに満足していることをもう一度確認してください、私はそれを実行しなかったので、特にrm -rコマンド。 (このコマンドは、サブフォルダを含む、指定されたフォルダ内のすべてのものを削除します。

#! /bin/bash

FOLDER=/folder/to/delete

MAXSIZEINGIGS=10

#### No User Serviceable Parts below this line ###

MAXSIZE=$(( $MAXSIZEINGIGS * 1024 * 1024 ))
FOLDERSIZE=`du -ks $FOLDER | cut -f1`

if [ $FOLDERSIZE -gt $MAXSIZE ]
then
        rm -r $FOLDER/*
fi

上記のスクリプトでファイルを作成し、それを実行可能にし(chmod 755 filename)、以下のような行でそれをcrontabに追加します。

02 02 * * *    ownername   /path/to/file

(これは毎朝02:02 amに実行され、あなたがそれを/ etc / crontabに追加したと仮定します。もしあなたがそれをユーザーのcrontabに追加したなら、 "ownername"ビットを省略してください。

とは言っても、これが物事を進める上で良い方法なのだろうか。まったく異なるアプローチとしては、指定された年齢より古いすべてのファイルを定期的に単純に削除することが考えられます。これは、crontabの1ライナーを使用して行うことができます。

02 04 * * *     username     find /data/spam -ctime +15 -exec rm {} +

/ data / spamで14日以上経過したすべてのファイルを探して削除します


まさに私が必要としていたもの。どうもありがとうございました!
The Newbie
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.