web-dev-qa-db-ja.com

特定の日にシャットダウン

shutdown -h 21:45を使用して特定の時間にシャットダウンをスケジュールでき、そのような性質のため、crontabを繰り返し使用しないでください。 8月31日午後20:00のように、特定のdateのシャットダウンをスケジュールするにはどうすればよいですか?

11
HdM Upload

最近のUbuntuバージョンはsystemdを使用し、従来のatdおよび関連するatスケジューラーが1回限りのコマンドにインストールされていないか実行されていない1回のコマンド systemd-runこれは手動で systemd timer

 systemd-run --on-calendar="2019-08-31 20:00:00 CET" /sbin/shutdown now
7
HBruijn

atコマンドは、将来の実行を1回だけスケジュールするためのものです。

例えば.

% at 8pm Aug 31
at> echo hello
at> <EOT>
job 161 at Sat Aug 31 20:00:00 2019

(「<EOT>」は、control-Dを押して作成されました)

% atq
161     Sat Aug 31 20:00:00 2019 a sweh

shutdownコマンドをここに置くことができます。

12
Stephen Harris

atはこれを行うための明白な方法ですが、シャットダウン後も存続すると思います。そのため、マシンがスケジュールされたシャットダウンの前に再起動すると、スケジュールされた時間に再びシャットダウンする可能性があります。したがって、bashとGNU日付を使用すると、遅延シャットダウンを使用できます。

/sbin/shutdown +$(( ( $( date -d "30 may 2019 13:15" +%s ) - $( date +%s ) ) / 60 + 1 ))

注意:これは1分程度の正確さです。これは、スケジュールされた時間をUNIXエポックからの秒数に変換し、差を計算して分に変換し、これをシャットダウンの遅延として使用することで機能します。予定時刻が過ぎていると正常に動作しません。

7
CSM

より良いshutdownコマンドを使用します。

Van Smoorenburg、Upstart、およびsystemd shutdownコマンドでは、日付を指定できません。ただし、BSDのshutdownコマンドは、シャットダウンするタイミングの指定に日付値をyymmddhhmmの形式で取ります。これは4BSD以来ずっとそうであり、FreeBSDとOpenBSDでもそうです。 NetBSDはそれをccyymmddhhmmに拡張しました。

NoshツールセットはBSDでも使用できるため、shutdownコマンドに同じ機能を与え、NetBSDごとにCCYYMMDDHHMMに拡張しました。また、noshツールセットはLinuxでも使用できるため、日付を取得するシャットダウンコマンドをLinuxに提供します。

もちろんnosh system-manager。他のシステムでも動作します。これは、プロセス#1に信号を送信して処理を実行します。同じ信号は、systemdなどの他のシステムマネージャでも認識され、これを使用してシャットダウンすることもできます。

あなたはそれ、またはそのようなツールを使用することができます。または、他のLinux shutdownプログラムの作者に、それらのツールをBSD shutdownと同じように拡張するように説得することもできます。

参考文献

  • ジョナサン・デ・ボイン・ポラール(2018)。 shutdown 。 noshツールセットのマニュアルページ。ソフトウェア。
  • ジョナサン・デ・ボイン・ポラール(2018)。 system-manager 。 noshツールセットのマニュアルページ。ソフトウェア。
  • shutdownSystem Manager's Manual。 NetBSDマニュアルページ。 2011-11-04。
  • shutdownFreeBSDシステム管理者用マニュアル。 2018-01-01。
  • shutdown 。 OpenBSDマニュアルページ。 2015-01-21。
  • https://unix.stackexchange.com/a/465337/5132
3
JdeBP

今年のみジョブを実行するには:

0 20 31 8 * test $(/bin/date +\%Y) = "2019" && /sbin/shutdown now

毎年ジョブを実行するには:

0 20 31 8 * /sbin/shutdown now
1
Freddy