私はLinuxの完全な初心者ですが、それを理解し始めています。セキュリティビデオファイルをバックアップするためにFTPサーバーを実行しているUbuntu Server 16.04があります。ファイルは、/home/securityfolder1
、/home/securityfolder2
、/home/securityfolder3
などのフォルダーに保存されます。
各securityfolderN
は異なるユーザーであることに注意してください。
ハードドライブを常にいっぱいにしたくないので、これらのフォルダーの7日以上前のファイルを毎日削除します。
最初に、このコマンドは、名前がsecurityuser
で始まる/home
のサブディレクトリで7日より古いすべてのファイルを見つけて削除します。
find /home/securityuser* -mtime +6 -type f -delete
-mtime +6
は24時間をカウントするため、+7
ではなく-mtime
が必要です。 -atime
のman find
セクションで説明されているように(-mtime
は同じように機能します):
-atime n
File was last accessed n*24 hours ago. When find figures out
how many 24-hour periods ago the file was last accessed, any
fractional part is ignored, so to match -atime +1, a file has to
have been accessed at least two days ago.
したがって、7日以上前に変更されたファイルを見つけるには、6日以上前に変更されたファイルを見つける必要があります。したがって、-mtime +6
です。
次のステップは、このコマンドを1日に1回実行することです。各securityuserN
は異なるユーザーであるため(セットアップを再考する必要がある場合があり、すべてがより複雑になります)、これをrootとして実行する必要があります。したがって、/etc/crontab
を編集します。
Sudo nano /etc/crontab
そして、次の行を追加します。
@daily root find /home/securityuser* -mtime +6 -type f -delete
これにより、find
コマンドが1日に1回実行され、ファイルが削除されます。
私の知識に従って:
次のようなfind
コマンドを試してください。
find ./dirc/* -mtime +6 -type f -delete
./dirc/* : is your directory (Path)
-mtime +6 : modified more than 6 days ago (therefore, at least 7 days ago)
-type f : only files
-delete : no surprise. Remove it to test before like rm