- - PR -
SSHを利用したファイルの削除
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-12-22 14:58
SSHを利用して管理サーバ上のCGIから不要ファイルの削除を行うようなプログラムを作成しようとしています。
そこでSSHのコマンド動作の確認を行ったのですが、 %ssh サーバ find ディレクトリ名 -type f -mtime +7 -exec rm -f {} \; (指定サーバ内の指定ディレクトリ内にある1週間以前のファイルを削除する) を実行すると以下のようなエラーになります。 %COMMAND=/usr/bin/find /home/ディレクトリ -type f -mtime +7 -exec rm -f {} % %find: -ok: no terminating ";" なぜでしょうか? サーバ上でfindコマンドのみ実行するときちんとファイルは削除できます。 %find ディレクトリ名 -type f -mtime +7 -exec rm -f {} \; % sshではだめなのでしょうか? | ||||
|
投稿日時: 2004-12-22 15:19
↓のように一重引用符で括ってみてはいかがでしょう?
| ||||
|
投稿日時: 2004-12-22 16:13
返信ありがとうございます。
確認してみましたが find: -exec: no terminating ";" とエラー表示されます。またエラーについてですが、 no terminating ";" という事は -exec rm -f {} ; の「;」が認識できていないのが原因ということなのでしょうか? | ||||
|
投稿日時: 2004-12-22 16:17
rsh を ssh でラッピングしてますか?
それとも、 >% ssh サーバ find ディレクトリ名 -type f -mtime +7 -exec rm -f {} \; 末尾の \; が「勝手に」無くなるという事ですか? 違うコマンド発行して同じ結果を得よう等と言うのは「野望」であって、 (もちろん、使い方によってできない事も無い場合もあるが) 野望は、人の作ったものではなく自作物で実現しようとした方が良いでしょう。 そうではなく、 \; が勝手になくなってしまう、という話でしたら、参考までに言うと、 % ssh サーバ 'find ディレクトリ名 -type f -mtime +7 -exec rm -f {} \;' こうすれば、 \; が消える事はないでしょう。 [ メッセージ編集済み 編集者: コブラ 編集日時 2004-12-22 16:28 ] | ||||
|
投稿日時: 2004-12-22 16:56
>rsh を ssh でラッピングしてますか?
→ラッピングの意味がよくわからないのですが、 whichコマンドで確認すると、rshとsshはそれぞれ別の実行ファイルとして存在しています。 >末尾の \; が「勝手に」無くなるという事ですか? →エラーの no terminating ";" はそういう意味ではないという事でしょうか? コマンドについてですが %ssh サーバ 'find ディレクトリ名 -type f -mtime +7 -exec rm -f {} \;' %password: %(無応答→ファイルが削除されている) %ssh サーバ 'find ディレクトリ名 -type f -mtime +7 -exec rm -f {} ;' %password: %find: -exec: no terminating ";" %ssh サーバ find ディレクトリ名 -type f -mtime +7 -exec rm -f {} \; %password: %find: -exec: no terminating ";" %ssh サーバ find ディレクトリ名 -type f -mtime +7 -exec rm -f {} ; %password: %find: -exec: no terminating ";" となりました。 %ssh サーバ 'find ディレクトリ名 -type f -mtime +7 -exec rm -f {} \;' とすればファイルを削除する事ができました。 ありがとうございます。 | ||||
|
投稿日時: 2004-12-22 17:12
>no terminating ";"
>はそういう意味ではないという事でしょうか? ところで、末尾の \; は「勝手に」無くなっていたのでしょうか? | ||||
|
投稿日時: 2004-12-22 17:34
>ところで、末尾の ; は「勝手に」無くなっていたのでしょうか?
コマンド実行の際はきちんと入力して実行しました。 なのに find: -exec: no terminating ";" と表示されますので、そう解釈したのですが。。。 |
1