Cronが存在しない.shスクリプトを実行します。

Cronが存在しない.shスクリプトを実行します。

奇妙な現象に触れました。

私はずっといたずらをしたcronので、というスクリプトを実行しましたstartup.sh

私はコマンドを使用したsudo crontab -e後、次のように入力しました。

@reboot sleep 20 && /home/hellfire/startup.sh

まずメールを送信するスクリプトを作成しましたが、メッセージを送信するために書き直しました。しかし、サーバーを再起動しても何も起こりません。

それからcronの状態を確認してみると、すでに実行されているという事実に驚きました。古いスクリプト、もはや存在しない。一種のクローンキャッシュがありますか?

ここでステータスを確認してください。

hellfire@Plex:~$ sudo systemctl status cron

    ● cron.service - Regular background program processing daemon
       Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled)
       Active: active (running) since Mon 2020-01-20 20:57:56 CET; 1min 45s ago
       Docs: man:cron(8)
       Main PID: 537 (cron)
      Tasks: 1 (limit: 3548)
       CGroup: /system.slice/cron.service
               └─537 /usr/sbin/cron -f

    Jan 20 20:57:57 Plex cron[537]: (CRON) INFO (pidfile fd = 3)
    Jan 20 20:57:57 Plex cron[537]: (CRON) INFO (Running @reboot jobs)
    Jan 20 20:57:57 Plex CRON[565]: pam_unix(cron:session): session opened for user root by (uJan 20 20:57:57 Plex CRON[613]: (root) CMD (sleep 20 && /home/hellfire/startup.sh)
    Jan 20 20:58:21 Plex sSMTP[866]: Creating SSL connection to host
    Jan 20 20:58:21 Plex sSMTP[866]: SSL connection using ECDHE_RSA_AES_256_GCM_SHA384
    Jan 20 20:58:21 Plex cron[537]: sendmail: 550 5.7.1 Username [email protected] and sender roJan 20 20:58:21 Plex sSMTP[866]: 550 5.7.1 Username [email protected] and sender [email protected] 20 20:58:21 Plex CRON[565]: (root) MAIL (mailed 75 bytes of output but got status 0x00                                )
    Jan 20 20:58:21 Plex CRON[565]: pam_unix(cron:session): session closed for user root

存在しなくなったメールスクリプトを実行しようとしましたが失敗します(以前は機能しましたが問題ではありません)。

その後、スクリプトファイルを確認しました。

hellfire@Plex:~$ cat /home/hellfire/startup.sh

#!/bin/bash

smsT --command='m "Adam Larsson" Hellfire are ONLINE'

これは新しいスクリプトです。それでは、cronは他の(現在書き換えられた)スクリプトをどこで実行しますか?

もちろん、Linuxを再起動し、キャッシュの削除もしてみましたが、役に立たなかったですね..

..だから今は混乱しています...(通常よりも混乱しています)。これについて知っている人はいますか?

Ubuntu 18.04.3lts miniで実行

答え1

これは古典だ」自分の尾を追う質問。

cronジョブにエラーが発生すると、cronは現在実行されているユーザーアカウントからシステムの現在のメール設定で指定された電子メールに電子メールを送信します。

最初のスクリプトが電子メールで通知されたので、私はcronがスクリプトの奇妙な「ゴーストコピー」を実行していると仮定しましたが(間違った仮定)、私の役割を果たしているだけです。

私を正しい道に導いた人は@kusalanandaでした。

私が疑問に思うことと答えでこの記事を書く理由は、cronが電子メールを送信できないことを除いて、新しいスクリプトに問題があると言ったことがないということです。 22年の短い瞬間、焦点が間違った問題に集中しました。

これは確かに最善の答えではありませんが、今回はそうです。エスビケ間違い(S愚かな第二後でK鍵盤)...

これは、ケースにない情報を常に注意深く調べる必要があるという教訓であり、おそらく他の人に思い出させるでしょう。

関連情報