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 つの方法

推薦する

マークアップ言語 - リスト再び

123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...

MySQLカーソルの使い方と機能の詳細な説明

[mysqlカーソルの使い方と機能]例:現在、テーブル A、B、C の 3 つのテーブルがあります。...

MySQL 5.7のワンクリックインストールとパスワードポリシーの変更方法

1.Mysqlスクリプトのワンクリックインストール [root@uat01 ~]# cat Inst...

MySql5.7.21 インストールポイント記録メモ

ダウンロードしたバージョンは、Zip 解凍版、Windows システムです。長い間 Windows ...

Kali に docker と portainer をインストールする方法

dockerの登場により、多くのサービスが徐々にハードウェアアーキテクチャへの依存から脱却しました。...

Windows 上で Nginx+Tomcat クラスタを実装するプロセスの分析

導入: Nginx (エンジン エックスと同じ発音) は、BSD のようなプロトコルに基づいてリリー...

ページデザインにおけるテーブルとdivの適切な適用についての簡単な説明

この記事の冒頭で、以前書いた入門記事の間違いを訂正したいと思います。初心者を再び誤解させないように、...

Mysql5.7 のグループ連結関数を使用するときにデータが切り捨てられる問題に対する完璧な解決策

一昨日、本番環境でGROUP_CONCAT関数を使用して選択したデータが切り捨てられ、最大長が102...

Vueはテーマ切り替えのための複数のアイデアを実装します

目次テーマを動的に変更する最初の方法: 動的コンポーネント2番目の方法はルーティング分離です要約する...

Ubuntu 18.04.4 に MySQL をインストールするプロセスの詳細な説明

Ubuntu 18.04.4 に MySQL をインストールするプロセスを見てみましょう。内容は次の...

コード標準では、SQL ステートメントに結合が多すぎないようにする必要があるのはなぜですか?

無料ポイントインタビュアー:Linuxを使ったことはありますか?私:はいインタビュアー:メモリ使用量...

MyBatis 動的 SQL の包括的な説明

目次序文動的SQL 1. まずモジュールのディレクトリ構造を見てみましょう2. 物理モデリングと論理...

MySQL 8.0 のメモリ関連パラメータの概要

理論的には、MySQL によって使用されるメモリ = グローバル共有メモリ + max_connec...

MySQL 5.7.23 解凍バージョンのインストールチュートリアル(画像とテキスト付き)

MySQLインストーラをダウンロードする公式ダウンロードアドレス: http://dev.mysq...

Docker コンテナのログを表示およびクリーンアップする方法 (テスト済みで効果的)

1. 問題Docker コンテナのログにより、ホストのディスク領域がいっぱいになりました。 doc...