スケジュールされたタスクは、オペレーティング システムによって提供される非常に優れた機能です。Web サイトのデータを毎日定期的にバックアップする、データ統計プログラムを毎月実行する、サーバーの動作を監視するなどの処理に、スケジュールされたタスクをよく使用します。 (エラーが発生したときに管理者にメッセージを送信して管理者に通知する) など。これらはすべて、スケジュールされたタスクを完了する必要があります。
Linux でのスケジュールされたタスクは、1 回だけ実行されるスケジュールされたタスクと定期的に実行されるスケジュールされたタスクの 2 つのカテゴリに分類されます。今回は、1 回だけ実行されるスケジュールされたタスクについて説明します。定期的に実行されるスケジュールされたタスクについては、次の記事で説明します。
atd サービス
一度だけ実行されるスケジュールされたタスクは、at コマンドを通じて完了します。コマンドを実行するには、まず atd サービスを開始する必要があります。 atdサービスの稼働状況を確認し、atdサービスを起動するコマンドは以下のとおりです。
# 查看atd服务状况 # systemctl status atd # 开启atd服务 # systemctl start atd
権限管理で
使用する場合at を使用して新しいタスクを生成すると、タスクはテキスト ファイルの形式で /var/spool/at ディレクトリに配置されます。
# ll /var/spool/at total 8 -rwx------ 1 root root 2890 Nov 7 16:30 a0000201981b23 <===== at产生的文件 drwx------ 2 daemon daemon 4096 Nov 7 16:27 spool
at の権限管理のために、システムには 2 つの特別なファイルを指定する必要があります。これら 2 つのファイルは、実際には私たちが理解しているブラック リストとホワイト リストと同じです。これら 2 つのファイルは、/etc/at.deny (ブラックリスト) と /etc/at.allow (ホワイトリスト) です。システムデフォルトの at.deny コンテンツは空であり、/etc/at.allow システムデフォルトは存在しません。どちらのファイルも存在しない場合は、root ユーザーのみが at コマンドを使用できます。
atコマンドの詳しい説明
atコマンドの使い方を見ていきましょう。
スケジュールされたタスクの設定
at コマンドを使用して、スケジュールされたタスクを [-m] 時刻 (一般的に使用される時刻形式 - HH:MM) に設定します。 YYYY -MM-DD、さらに、英語の 1 分間同様のフォーム設定も使用できます。
# at 17:00 2020-11-11 at> date >> /root/at.txt at> <EOT> <=== 这里输入ctrl+d来结束 job 3 at Wed Nov 11 17:00:00 2020 # at now +5 minutes at> date >> /root/at.txt at> <EOT> job 4 at Sat Nov 7 17:01:00 2020
スケジュールされたタスクの表示
スケジュールされたタスクを表示するには、-l オプションを使用します。特定のコマンドを表示したい場合は、 -c オプション。さらに、atq コマンドを使用して表示することもできます。
# at -l 6 Sat Nov 7 17:13:00 2020 a root 3 Wed Nov 11 17:00:00 2020 a root # atq 6 Sat Nov 7 17:13:00 2020 a root 3 Wed Nov 11 17:00:00 2020 a root
スケジュールされたタスクの削除
まだ実行されていない計画されたタスクは、at -d または atrm を使用して削除できます。
# at -d 3 # atrm 6
at を使用してスケジュールされたタスクを生成するもう 1 つの利点は、オフラインで管理できることです。
以上がLinux でのスケジュールされたタスク - 1 回だけ実行されるスケジュールされたタスクの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。