GNU/Linux >> Linux の 問題 >  >> Ubuntu

30日より古いファイルを自動的に削除するcronジョブを作成するにはどうすればよいですか?

Ubuntu14デスクトップを使用しています。このマシンを他のマシンのバックアップや防犯カメラのFTPサーバーとして使用しています。

30日以上経過したファイルを自動的に削除するcronジョブを作成する必要があります。検索を行ったところ、正しいコマンドが見つかったと思いますが、実行する前に何かが不足していないことを確認したいと思います。

* 4 * * * find /home/USER/DIRECTORY1/DIRECTORY2/ -mindepth 1 -type f -mtime 29 -delete

findコマンドの前に「sudo」を付ける必要がありますか?

日数「29」の前に「+」を付ける必要がありますか?

承認された回答:

まず、find ...を入力します bashのコマンド スクリプトを作成し、crontabからそのスクリプトを呼び出します。 。暗号化されたホームディレクトリがある場合(cat /home/.ecryptfs/$USER/.ecryptfs/Private.mnt )スクリプトを$HOMEの外に保存する必要があります ディレクトリツリー。コマンドをcrontabに保持する 構成、ロギング、およびデバッグが困難になり、crontab コマンドパーサーはbashほど賢くありません ’s。

次に、常に、常に、常にfindをテストします -printを使用 、-deleteを検討する前に、それを機能させます 。

第三に、find テスト「-mtime 29 」はfindに指示しています 「ファイルのmtimeを見つけてください 、およびTrueを返します 29と等しい場合 。 -mtime +29を使用する必要があります 、findmore than 29」と表示されます 「、それはあなたが望むものです。 man findから :

   Numeric arguments can be specified as

   +n     for greater than n,

   -n     for less than n,

   n      for exactly n.

第4に、/home/USER/DIRECTORY1/DIRECTORY2/のディレクトリへの書き込みアクセス権があることを確認します 。

第五に、/home/USER/DIRECTORY1/DIRECTORY2/のことですか または/home/$USER/DIRECTORY1/DIRECTORY2/$USERの場合 ユーザーのユーザーID用です。問題があります:cron $USERを定義していません 実行時環境で。 $HOMEを定義します 、したがって、$HOME/DIRECTORY1/DIRECTORY2を使用できます 。


Ubuntu
  1. MySQLデータベースバックアップを毎日取得し、10日より古い古いバックアップファイルを削除するようにcronを設定するにはどうすればよいですか?

  2. Linux で tmpreaper を使用して N 日以上経過したファイルを削除する方法

  3. x日より古いファイルまたはフォルダーを見つけて削除する

  1. Linuxで特定の日付より古いファイルを削除するにはどうすればよいですか?

  2. サブディレクトリを含む x 日より古いファイルを削除する Bash スクリプト

  3. グループ書き込み可能ではない*すべてのファイルを見つけるにはどうすればよいですか?

  1. コマンドラインでのファイルの検索(ハウツー)

  2. LinuxでX日より古いすべてのファイルを削除するにはどうすればよいですか?

  3. パターンに一致するファイルを削除するために find コマンドを使用する方法は?