0

私は非常に奇妙な問題を抱えています。Hudsonデプロイメントを使用している私のボックスの1つで、作業コピーフォルダー(基本的にはSVNチェックアウト)が毎晩継続的に削除されます。大きな問題ではありません。ほとんど奇妙で迷惑です。このため、毎朝、更新/切り替えではなく、フルチェックアウトを実行する必要があります。私の知る限り、これはHudsonの構成の問題ではありません。すべてのcrontabファイルをチェックして、そうではないことを確認しました。

Linuxには、フォルダーを監視し、フォルダーが削除されたときの履歴を保存し、誰がフォルダーを削除するかを示すbashスクリプトまたはコマンドラインマジックがありますか?このようにして、実際の削除を実行しているものを絞り込むことができます。

4

3 に答える 3

1

私は似たようなものに出くわしました - 私がしたことは2倍でした。まず、完全なシステム アカウンティングを有効にしました。これにより、どのプロセスがいつ実行されたかが記録されます。親ディレクトリの最終変更時刻を見ることで、「いつ」を絞り込むことができます。

しかし、アカウンティング ログには十分な詳細が表示されないと思います (プロセスの引数、親プロセスなど -- これは Solaris の場合で、Linux ではより多くのログ オプションが得られる可能性があります)。それで、私がやったのは、「rm」の名前を変更し、入力パラメーター、どのプロセスがそれを呼び出したか、および呼び出しプロセスの所有者をログに記録した後、「rm」というシェルスクリプトを作成して、実際のシェルスクリプトを呼び出すことでした。

プロセスが rm の代わりに unlink システム コールを呼び出している場合は、C ライブラリのソースを取得し、同様のログ機能を unlink 呼び出しに追加する必要がある場合があります。

于 2012-05-18T01:48:38.517 に答える
1

この質問に「bash」というタグを付ける必要があるかどうかわかりません。多くのことがこのフォルダーを削除する可能性があり、bash には実際に削除するための独自のコードが含まれていません。

何が起こっているのかを追跡する 1 つのオプションは、ディレクトリを削除できないようにしてから、Hudson (または他の場所) でエラーが発生していないかどうかを確認することです。親フォルダーまたはその中の任意のファイルに「不変」フラグを設定すると、削除は失敗します。

BSD (FreeBSD/NetBSD/etc) では、以下を使用します。

sudo chflags schg /path/to/directory_or_file

Linux では、次を使用します。

sudo chattr +i /path/to/directory_or_file

ここで、すべての root メッセージと cron メッセージを実際に取得していることを確認し(フィルター処理や null 配信ではなく)、Hudson のデバッグ レベルを上げて (ある場合はわかりません)、何が起こるかを観察します。 .

不変フラグ (または schg) をフォルダーに追加しても、サブフォルダーのコンテンツは保護されないことに注意してください。ディレクトリを削除したり、ディレクトリにファイルを追加または削除したりすることができなくなるだけです。

[ghoti@pc ~]$ mkdir zzz zzz/foo
[ghoti@pc ~]$ touch zzz/bar
[ghoti@pc ~]$ sudo chflags schg zzz
[ghoti@pc ~]$ touch zzz/baz
touch: zzz/baz: Operation not permitted
[ghoti@pc ~]$ touch zzz/foo/baz
[ghoti@pc ~]$ 
于 2012-05-18T02:11:44.913 に答える
0

ノードのワークスペース/ディレクトリ内のカスタム ワークスペースが毎晩削除されるJENKINS-8880に遭遇している可能性があります。修正するには、1.427 (またはそれ以降) にアップグレードするか、workspace/ディレクトリの外にカスタム ワークスペースを配置します。

于 2012-05-18T18:16:09.107 に答える