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理由ですか?
- 私が欲しいことをやり直す方法は簡単ですか?
- 許可されていないフォルダを無視して動作させる方法はありますか?
ああ、問題はファイルを見つけるロジックでおそらくだったおかげ
質問を読んでいただきありがとうございますが、上記の解決策が私のケースでは機能していないことに気づくでしょう:) @Inian 私はメッセージを除外したいと思っています。私のスクリプトは動作しています:D – xxxvodnikxxx
findを-userで実行しようとしましたが、スクリプトが実行されているユーザーのファイルをリストするだけですか? – AndyM
投稿に重複フラグが付きませんか?これについてはどうすればいいですかhttps://stackoverflow.com/questions/762348/how-can-i-exclude-all-permission-denied-messages-from-find – AndyM