Ubuntuで任意のcron起動を確認するストーリー

2022年12月12日

サーバー テクノロジー 日記

eyecatch 自宅にサーバーを設置しています。 部屋に置いてあるので、アクセスするとスイッチHUBがピカピカ光ります。 公開しているけど、ほぼ誰もアクセスできないシステムページを設置しているので、普段は自分以外アクセスしません。 ある時、激しくそのHUBが点滅していて、少しビビったところからこの話は始まります。

topしてkill

スイッチングHUBが点滅するということは、WEB(またはLAN内)でのアクセスが発生しているという状態。 自分はベッドに横になってドラクエをしていたので、サーバーアクセスしてないし・・・ 他にある自宅の機器などが定期バッチなどで動いている記憶はないし、気配もない。 こうなったら、サーバー内部での動作を確認するしかないので、面倒くさいと思いながらも、手元のmacからターミナルでsshを実行してその原因のサーバーにアクセス。 ※この時、そのサーバーが手元にあるのに、何故わざわざmacでアクセスするのかというと、ベッドにいる状態から離れたくないというモノグサだからです・・・ サーバーの動作状況を調べる最も簡単な方法は、次のコマンド(3文字だけ)です。 $ top これで現れたのが、"kswapd0"というプロセスが数時間動きっぱなしになっていて、LA(LoadAverage)が、4にへばりついています・・・ ※LoadAverageは、CPUの動作している数値で、4コアCPUを搭載しているそのサーバーは処理がいっぱいいっぱいになっている状態だということが分かりました。 とりあえず、そのkswapd0プロセスをkillしてみる。 $ sudo kill -9 *kswapd0のプロセスID 無事に動作が停止して、LAの値もみるみる下がっていった。

調査の重要性

さて、次は、このkswapd0というプロセス、見に覚えがないし聴いたことが無い、一体何のプロセスなのか調べないと解決したと言えない・・・ このkswapd0って一体なんなのかというと、ググってみたら「linuxのスワップの時に動作するプロセス」なのだということが判明。 なんじゃそりゃ。 要するに、何かの処理が重くてメモリが足りなくなって、ストレージを使うスワッピング状態に陥っていたという事のようだ。 でも、何の処理が重かったのか、何故スイッチングHUBが動いていたのか、この時点ではわからない。 すると不思議な現象が発生し始めた。 また、kswapd0が発生して、LAが上がり始めたのだ・・・ なんか拉致があかないと思い、サーバーを再起動してみた。 $ sudo reboot 再起動すると、すぐにkswapd0が立ち上がって、LAを食いつぶしていく様子が良くわかる。 何かのアプリが立ち上がっていたり、モジュールが起動している様子は無いので、どうやら何かデータをコピーしているのではないかと推理してみた。

原因はcron

でも、そもそも、再起動して、コピーが始まるということは、何かのコマンドを実行しているということ。 その原因は、おそらくcronだ。 このPCは、色々と定期バッチなどの処理を行わせるためにcronの登録を行っていたので、crontabを調べてみたところ、 $ cat /etc/crontab 夜中の3時に起動する処理ばかりで、日中に動作をする記述などはされていない。 ましてや、PC起動時に動作する処理なども記載されていない・・・ でも、実はtopコマンドで確認した時に、root権限以外のユーザーでkswapd0が動作していたことを思い出した。 cronは、ユーザー毎にセットできるという機能があった。 それを調べるには、次の階層の中にファイルが作られている。
/var/spool/cron/crontabs/ /var/spool/cron/atjobs/ /var/spool/cron/atspool/
すると、/var/spool/cron/crontabs/の中に見事対象ユーザーのcron設定が確認できた。 中にrsyncの記述があったので、定期バックアップをする処理が書かれていた。 そういえば・・・はるか昔に別に使っていたパソコンのバックアップを処理する記述をセットしたような記憶が蘇ってきた。 犯人は過去の自分・・・

あとがき

ウィルスなどじゃなくて安心したが、改めてcronのユーザー記述は管理者が見つけづらいと感じた。 この話は、サーバー運用をしている人じゃないと、なかなか意味が分からないと思いますが、 リアルな様子を残しておきました。 今回は、自宅内にサーバーを立てているのでスイッチングHUBの点滅に寄って、無駄なCPU負荷に気がつくことができたんですが、クラウドサーバーなどではまずこういう自体に気が付かないだろうと少し怖い一面に気がついてしまった。 未来の自分に、作業の詳細を残す何かしらの工夫も必要だと感じた今回の出来事でした。 くわばらくわばら・・・(くわばらって、一体何なんだ?)

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。