2017-12-12 15 views
1

findコマンドで3日以上(修正日時、mtime)のファイルを取得しようとしています(将来はexec rmコマンドを実行したいのですが、理由はDです)。 問題は私がrootユーザーではなく、ファイルが混在していることです。 これは、最初のアクセス許可拒否メッセージが発生したときに立ち往生する単純なスクリプトのように見えます。bash-find-許可が拒否されましたか?

#!/bin/sh 
find /tmp* -type f -mtime +3 -group jenkins -print 
# -exec rm {} \; 

出力は、findコマンドで発生した多くのファイルがあるNotice-(rootユーザが所有している)だけでエラーメッセージ find: ‘/tmp/systemd-private-dbe33161924b4616a037608d052f48d0-httpd.service-sFr4Wd’: Permission denied

です:

ll /tmp | less 
    .... 
    drwxr-xr-x 2 jenkins jenkins 4096 Dec 11 02:33 02a47e28-4254-45d4-b69d-ed33b9ef3bad 
    drwxr-xr-x 2 jenkins jenkins 4096 Dec 6 15:10 03a1acc7-3040-430a-b5c3-9ce646407b93 
    drwxr-xr-x 2 jenkins jenkins 4096 Dec 5 12:27 062eb875-3216-4b2a-bae2-66106b66b0cd 
    drwxr-xr-x 2 jenkins jenkins 4096 Dec 9 06:51 0a6f8afc-0976-441b-980b-d0502f3903b1 
    drwxr-xr-x 2 jenkins jenkins 4096 Dec 5 13:07 1512475627515-0 
    drwxr-xr-x 2 jenkins jenkins 4096 Dec 5 13:07 1512475627836-0 
    drwxr-xr-x 2 jenkins jenkins 4096 Dec 5 13:07 1512475629807-0 
    drwxr-xr-x 2 jenkins jenkins 4096 Dec 5 13:07 1512475629829-0 
    drwxr-xr-x 2 jenkins jenkins 4096 Dec 5 13:07 1512475629843-0 
    ..... 
    -rw-rw-r-- 1 root root  301 Dec 5 14:37 informix_disc.log 
    -rw-rw-r-- 1 root root  714 Dec 5 14:37 oracle_disc.log 
    -rw-rw-r-- 1 root root  602 Dec 5 14:37 sybase_disc.log 
    drwx------ 3 root root 4096 Nov 20 13:47 systemd-private-dbe33161924b4616a037608d052f48d0-httpd.service-sFr4Wd 
    drwxr-xr-x 2 root root 4096 Oct 30 09:39 vmware-config0 
    drwxr-xr-x 2 root root 4096 Nov 17 08:51 vmware-config1 
... 

は私が許可を避けるために試してみました拒否されたメッセージ:

1. 2>/dev/null OR 2>&- (add on the end, error output to null redirect) 
2. find -type d ! -readable -prune -o ... (exclude not readable folders) 
3. find /tmp* -type f -mtime +3 -group jenkins -print 2>&1 | grep -v "Permission denied" (should be same as above) 
4. find -user jenkins, as well as -user $(whoami) 
5. -perm -u+rwx 

私はは/ dev/nullにエラー出力をリダイレクトしようとする鶏は、コマンドの出力は

が親切、

  • 私が何か間違ったこと、または何していてください

    空白になって、それは最初の許可拒否メッセージの後stucked GOTS理由ですか?
  • 私が欲しいことをやり直す方法は簡単ですか?
  • 許可されていないフォルダを無視して動作させる方法はありますか?

ああ、問題はファイルを見つけるロジックでおそらくだったおかげ

+0

質問を読んでいただきありがとうございますが、上記の解決策が私のケースでは機能していないことに気づくでしょう:) @Inian 私はメッセージを除外したいと思っています。私のスクリプトは動作しています:D – xxxvodnikxxx

+0

findを-userで実行しようとしましたが、スクリプトが実行されているユーザーのファイルをリストするだけですか? – AndyM

+0

投稿に重複フラグが付きませんか?これについてはどうすればいいですかhttps://stackoverflow.com/questions/762348/how-can-i-exclude-all-permission-denied-messages-from-find – AndyM

答えて

0

は、私は2つのコマンド(別途ディレクトリとファイルを見つける。)

#!/bin/sh 
find /tmp -user $(whoami) -type d -mtime +3 -exec rm -rf {} \; 
find /tmp -user $(whoami) -type f -mtime +3 -exec rm -f {} \; 

を作って、それがうまく機能のように見えます、許可拒否メッセージは引き続き発生しますが、コマンドは機能しています。

+0

あなたが見つかりました解決策はありますが、私はまだあなたの元の症状によって謎に包まれています。完了までに長い時間を要するのではなく、コマンドに_stuck_があることを確信していますか? – mklement0

+0

私が得たすべての出力は許可が拒否されており、メッセージの周りにファイルがリストされていないため、おそらく沈んでいました。 – xxxvodnikxxx

関連する問題