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

推薦する

Vueプロジェクトが完了した後にプロジェクトを最適化する方法の例

目次1. 開発モードとリリースモードに異なるパッケージエントリポイントを指定する2. 外部CDNリソ...

div タグ内の要素の margin-top が無効である場合の解決策

タイトル通りです。その質問は非常に奇妙です。要素の親タグはdivで、幅や高さなどの属性は設定されてい...

nginx を最適化する 6 つの方法

1. Nginxの同時実行性を最適化する [root@proxy ~]# ab -n 2000 -c...

MySql のグループ化と各グループからランダムに 1 つのデータを取得する

アイデア: 最初にランダムに並べ替えてからグループ化します。 1. テーブルを作成します。 テーブル...

レスポンシブなアコーディオン効果を実現するための CSS3 の詳細な説明

最近、外国人が CSS3 を使用してアコーディオン効果を実現しているビデオを見たので、自分で学習した...

MySQL 5.7.17 最新インストールチュートリアル(画像とテキスト付き)

mysql-5.7.17-winx64 は MySQL の最新バージョンです。インストールは無料で...

フレックスとポジションの互換性の詳細な説明マイニングノート

今日は、すべてのブラウザ (主に IE 9 以上と Chrome) と互換性のある自分のホームページ...

Nginx における accept lock の仕組みと実装の詳細な説明

序文nginx はマルチプロセス モデルを使用します。リクエストが届くと、システムはプロセスをロック...

ubuntu14.04 に jdk1.8 をインストールするチュートリアル

1. jdkダウンロードアドレスをダウンロードする我下載的是jdk-8u221-linux-x64....

JS におけるメモリと変数の保存についての詳細な説明

目次序文JSマジックナンバー数値の保存バイナリ変換方法なぜ 0.1 + 0.2 !== 0.3 なの...

WeChatアプレットの下部にあるタブバーがコンテンツをブロックする問題に対処する簡単な方法

WeChatアプレットでタブバーを設定すると、重要なコンテンツがブロックされ、iPhoneXなどの異...

CocosCreatorでJSZip圧縮を使用する方法

CocosCreator バージョン: 2.4.2 jszipの実践的なプロジェクトアプリケーション...

JS の効率的なマジック演算子の概要

JavaScript は現在、毎年新しいバージョンがリリースされており、より便利で効率的な新しい演算...

Vueプロジェクトでスケルトンスクリーンを使用する方法

現在、アプリケーション開発は基本的にフロントエンドとバックエンドに分離されています。主流のフロントエ...