Linux システムでのスケジュールされたタスクの紹介

Linux システムでのスケジュールされたタスクの紹介

1. 計画タスクをカスタマイズする

1. ATDサービス(1回限り)

1. atdサービスに対応するコマンド -----》at

atコマンドを使用するには、まずインストールする必要があります

[root@localhost lianxi]# yum install at -y

次に、atd サービスを開始する必要があります。そうしないと、タスクは定期的に実行されません。

[root@localhost lianxi]# サービス atd 開始
/bin/systemctl start atd.service にリダイレクトします

次に例を示します。

[root@localhost lianxi]# 11:00 #1回限りのスケジュールされたタスクを作成at> bash /root/wang.sh
at> <EOT> # ctrl+d でジョブ 5 を終了します 2021 年 12 月 22 日水曜日 11:00:00
[root@localhost lianxi]# -l で
3 水曜日 12月 22 10:20:00 2021 a ルート
5 水曜日 12月 22 11:00:00 2021 a ルート
[root@localhost lianxi]#
 
[root@localhost lianxi]# atrm 3 #スケジュールされたタスク番号3のタスクを削除します [root@localhost lianxi]# at -l #スケジュールされたタスクリスト5を表示します Wed Dec 22 11:00:00 2021 a root
[root@localhost lianxi]#

2. 1回限りのスケジュールされたタスクを保存するディレクトリ: /var/spool/at

batch コマンドは at コマンドと同じですが、システム負荷が比較的低いときにスケジュールされたタスクを実行する点が異なります。

uptime コマンド:

[root@localhost lianxi]# uptime #システムが起動している時間とシステムの平均負荷を確認します 10:28:33 4日間起動、16:13、ユーザー2人、負荷平均: 0.00、0.01、0.05

2. crondサービス(定期)はデフォルトでインストールされ、起動時に自動的に開始されます。

1. crondサービスに対応するコマンド ------》crontabは、定期的にスケジュールされたタスクを作成および管理するためのコマンドです
-e はスケジュールされたタスクを作成することを意味します (編集)
-l スケジュールされたタスクリストを表示する

2. 定期的にスケジュールされたタスクを保存するディレクトリ: /var/spool/cron

cron サービスの設定ファイル: /etc/crontab

Cron サービスのログ ファイル: /var/log/cron (スケジュールされたタスクが実行されたかどうかを知ることができます (CMD))

形式は次のようになります。

例:「例 1 (root ユーザー)」
sshd サービスは毎日午前 7:50 に自動的に開始され、22:50 に終了します。FTP サーバーのパブリック ディレクトリ Ivar/ftp/pub は 5 日ごとに 12:00 にクリアされます。
毎週土曜日の 7:30 に httpd サービスを再起動します。毎週月曜日、水曜日、金曜日の 17:30 に /etc/httpd ディレクトリをバックアップします。

[root@localhost lianxi]# crontab -e
crontab: 新しいcrontabのインストール
[root@localhost lianxi]# crontab -l
30 3 * * * bash /root/sc.sh
50 7 * * * サービスsshd開始
50 22 * ​​* * サービスsshd停止
0 12 */5 * * rm -rf /var/ftp/pub/*
30 7 * * 6 サービスhttpdの再起動
30 17 * * 1,3,5 tar czf /backup/httpd.tar.gz /etc/httpd
30 4 * * * /bin/bash /lianxi/backup/backup_log.sh
[root@localhost lianxi]#

3. atdサービスとcrondサービスの後の「d」の意味

d------》デーモン: 手動で停止するまで、常にメモリ内で実行されるプロセスです。手動で停止しない限り、メモリ内で実行され続けます。メモリ内で実行され続けるため、ユーザーはいつでもアクセスでき、ユーザーを守り、ユーザーの到着を待ち続けます。

2. 時間を同期する

Centos7の場合: ntpdateコマンドを使用する

#最初のステップは[root@localhost lianxi]をインストールすることです# yum install ntpdate -y
 
#ステップ 2 [root@localhost lianxi]# date -s "2021-12-22 15:6:12" #変更時刻 2021 年 12 月 22 日水曜日 15:06:12 CST
 
#ステップ3 [root@localhost lianxi]# ntpdate time.windows.com
12月22日 11:59:38 ntpdate[13102]: ステップ時間 サーバー 20.189.79.72 オフセット -11225.674351 秒
[root@localhost lianxi]# 日付
2021年12月22日水曜日 11:59:42 CST

Centos8または7の場合: chronyを使用する

[root@localhost lianxi]# yum install chrony -y #インストール [root@localhost lianxi]# service chronyd restart #サービスを再起動 /bin/systemctl restart chronyd.service にリダイレクト
 
[root@localhost lianxi]# 日付 -s "2021-12-22 15:6:12"
2021年12月22日水曜日 15:06:12 CST
 
[root@localhost lianxi]# 日付
2021年12月22日水曜日 12:02:38 CST

3. 練習する

1. /var/log ディレクトリ内のすべてのファイルを /backup ディレクトリにバックアップするスクリプト /backup/backup_log.sh を作成します。ファイル名には、秒単位の正確な日付を含める必要があります。たとえば、ファイル名は 2016-6-6-2_30_20-log.tar.gz です。
同時に、/backup ディレクトリ内の 7 日前のバックアップ ファイルを削除し、過去 7 日間のバックアップ ファイルのみを保持する必要があります。

2. ルートユーザーとして実行します。スケジュールされたタスクの要件は、上記のスクリプト /backup/backup_log.sh を毎日4:30に実行することです。

[root@lamp-testバックアップ]# pwd
/バックアップ
[root@lamp-test バックアップ]# cat backup_log.sh 
#!/bin/bash
mkdir -p /バックアップ
tar -czf /backup/$(日付 +%F_%H_%M_%S)-log.tar.gz /var/log/*
/backup -mtime +7 -type f -name "*.tar.gz" -exec rm -rf {} \; を検索します。
[root@lamp-test バックアップ]# crontab -l
30 4 * * * bash /backup/backup_log.sh

4. セキュリティの問題

1. 不正にスケジュールされたタスクを見つけるにはどうすればよいでしょうか? どこで見ればいいですか? crond プロセスは実行するスクリプトをどこで探しますか?

1./var/spool/cron --》ユーザー定義のスケジュールされたタスクが保存される場所

2. オペレーティング システム自身のスケジュールされたタスク - (ライドシェアリング)

[root@localhost lianxi2]# ls /etc/cron.*
/etc/cron.deny
 
/etc/cron.d:
0時間ごと
 
/etc/cron.daily: 各マシンで実行する必要があるスクリプト logrotate man-db.cron
 
/etc/cron.hourly: 1時間ごとに実行する必要があるスクリプト 0anacron
 
/etc/cron.monthly: 毎月実行されるスクリプト /etc/cron.weekly: 毎週実行されるスクリプト [root@localhost lianxi2]# cat /etc/cron.deny crondサービスを無効にしているユーザーは、これに書き込むことができます

2. ヒッチハイク事件

ヒッチハイクの例:
[root@lamp-test cron.hourly]# pwd
/etc/cron.hourly
[root@lamp-test cron.hourly]# ls
0anacron 電源オフ.sh
[root@lamp-test cron.hourly]# chmod +x poweroff.sh 
[root@lamp-test cron.hourly]# cat poweroff.sh 
初期化0
 
 
 
[root@lamp-test ログ]# cd /etc/cron.hourly/
[root@lamp-test cron.hourly]# ls
0anacron 電源オフ.sh
[root@lamp-test cron.hourly]# rm -rf poweroff.sh

Linux システムでのスケジュールされたタスクに関するこの記事はこれで終わりです。Linux のスケジュールされたタスクに関する関連情報をさらに知りたい場合は、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Linux で 1 回限りのスケジュールされたタスクを実行するための at コマンドの使用に関する詳細な説明
  • Linux で at および cron スケジュールタスクをカスタマイズする方法
  • Linux で cron スケジュールタスクを使用する方法の詳細な説明
  • 簡単な説明: Linux cron スケジュールタスクでよく使用されるシンボルの概要

<<:  MySQL プロセス制御 IF()、IFNULL()、NULLIF()、ISNULL() 関数

>>:  Vue v-for ループを書く 7 つの方法

推薦する

Docker Compose マルチコンテナデプロイメントの実装

目次1. WordPressの導入1. 環境を整える(II) イメージを実行するDocker の作成...

SQL文でのgroup byの使用について簡単に説明します

1. 概要Group by は、by の後の規則に従ってデータをグループ化することを意味します。いわ...

Docker ベースの Selenium 分散環境の構築

1.画像をダウンロードするdocker pull selenium/hub docker pull ...

Expressはログイン認証を実装

この記事では、ログイン認証を実装するためのExpressの具体的なコードを例として紹介します。具体的...

MYSQL スロークエリとログ設定とテスト

1. はじめにスロークエリログを有効にすると、MySQL は指定された時間を超えるクエリステートメン...

Linux でショートカットアイコンを設定する方法

序文Linux でショートカットを作成すると、アプリケーションをより速く開くことができます。ここで、...

Vue3+TypeScriptはaxiosをカプセル化し、リクエスト呼び出しを実装します

まさか、2021年になってもTypeScriptについて聞いたことがない人がいるなんて?プロジェクト...

Docker で MySQL 接続と設定ファイルの最大数を変更する

1. MySQLイメージを見つける ドッカーps 2. ミラーmysqlイメージを入力する dock...

Vue で Axios カプセル化を使用するための完全なチュートリアル

序文現在、プロジェクトでは、Axios ライブラリが HTTP インターフェース リクエストによく使...

MySQL 8.0 ウィンドウ関数の紹介と概要

序文MySQL 8.0 より前は、Oracle、SQL SERVER、PostgreSQL などの他...

Linux の検索ツールの代替となるフレンドリーなツール

find コマンドは、指定されたディレクトリ内のファイルを検索するために使用されます。引数の前の文字...

K8Sの5つのコントローラーの紹介と使用

目次k8sのコントローラータイプポッドとコントローラの関係デプロイメント(ステートレスアプリケーショ...

HTML でナンバープレート番号と州の略語を入力するためのサンプルコード

原理としては、まずボタン付きの div を記述し、次に画面のサイズに応じて自動的に適応してキーボード...

WeChatアプレットのスクロールビューが左右の連動を実現

この記事では、WeChatアプレットのスクロールビューの左右連動を実現するための具体的なコードを参考...

動的なテーブル効果を実現するJavaScript

この記事では、動的なテーブル効果を実現するためのJavaScriptの具体的なコードを参考までに紹介...