CentOS7の運用と保守-プロセスとスケジュールされたタスク管理|非常に詳細|ワンタイムタイミングタスク| crontab定期実行プログラム

プログラムとプロセスの関係

プログラム

  • これは、静的に保存されたコード、実行可能コード、およびハードディスクやCDなどのメディアに保存されたデータの文字列です。

処理する

  • CPUメモリおよびメモリで実行されているプログラムコード
  • 動的に実行されるコード
  • 親プロセスと子プロセスを分離する
  • 各プログラムは1つ以上のプロセスを作成できます
  • メインプロセスには複数の子プロセスが含まれる場合があります

プロセス情報の表示ps

静的プロセス統計を表示する

ps aux or -aux

#他们获取的内容一致 "-"可加可不加
ps -aux | wc -l
ps aux | wc -l

  • a他のユーザープロセスを含む、端末上のすべてのプロセスを表示します
  • uは、プロセスを一覧表示するユーザーを示します
  • xすべての端末プロセスを表示

Linuxはマルチユーザーログインおよびマルチプロセスシステムです

各列の説明

  • USER:プロセスのユーザー
  • PID: 進行中ID
  • %CPU:プロセスが占めるCPU割合
  • %MEM:占有メモリの割合
  • VSZ:プロセスで使用される仮想メモリの量[KB]
  • RSS:プロセスで使用される物理メモリの量[KB]
  • TTY:プロセスを開始した端末の名前。端末からプロセスを開始しない場合は、?と表示されます。

pts / 1は、リモートツール接続を表します

  • STAT:旅程の状況
  • D中断できないスリープ状態R;:実行状態S;:スリープ状態で起動可能;:T停止状態、バックグラウンドで一時停止されているか、プロセスが追跡および
    デバッグ状態にあるZ;:ゾンビプロセス、プロセスは中止されましたが、一部プログラムのはまだメモリ内にあります
  • START:プロセスがトリガーされた時刻
  • TIME:プロセスの実際のCPU実行時間
  • COMMAND:プロセスの開始コマンド

静的プロセス統計を表示する

ps -elf #必须加-否则显示不全
  • -e システム内のすべてのプロセス情報を表示します
  • -l 長いフォーマットを使用してプロセス情報を表示する
  • -f プロセス情報をフルフォーマットで表示する

各列の説明

  • F:カーネルによってプロセスに割り当てられたシステムタグ
  • S:プロセスのステータス
  • UID:これらのプロセスを開始したユーザー
  • PID:プロセスのプロセスID
  • PPID:親プロセスのプロセス番号(プロセスが別のプロセスによって開始された場合)
  • C:プロセスのライフサイクルでのCPU利用
  • PRI:プロセスの優先度(数値が大きいほど優先度は低くなります)
  • NI:謙虚な価値は優先順位の決定に参加するために使用されます
  • ADDR:プロセスのメモリアドレス
  • SZ:プロセスがスワップアウトされる場合、必要なスワップスペースのおおよそのサイズ
  • WCHAN:プロセスがスリープ状態の場合、スリープ状態のシステム関数の名前が表示されます
  • STIME:プロセスが開始されたシステム時間
  • TTY:プロセス開始時の端末デバイス
  • TIME:プロセスの実行に必要な累積CPU時間
  • CMD:プロセスの開始コマンド

ゾンビプロセス

  • プロセスの親プロセスが最初に終了した場合、このプロセスはゾンビプロセスにはなりません。これは、各プロセスの終了時に、システムが現在のシステムで実行されているすべてのプログラムをスキャンして、の子であるプロセスがあるかどうかを確認するためです。終了したばかりのプロセス。そうである場合、Initが彼を引き継ぎます。子プロセスが終了した後、Initは関連するリソースを再利用します。
  • 子プロセスが最初に終了すると、ゾンビプロセスになります

プロセスランキング情報の動的ビュートップ

最初の行はタスクキュー情報です

15:56:44:システム時間
up 3:54:システム稼働時間
2 user:現在ログインしているユーザー数
0.22, 0.08, 0.06負荷平均::システム負荷、つまりシステムが単位時間に処理するタスク数、次の3つの値は1分、5分、および15分前から現在の平均まで

進捗情報の2行目

Tasks:プロセスの総数
running:実行中のプロセスの数
sleeping:スリープ中のプロセスの数
stopped:中止されたプロセスの数
zombie:デッドプロセスの

CPU情報の3行目

us:ユーザーが占有している
sy:カーネルが占めている
ni:優先度スケジューリングが占有
id:アイドルCPU、アイドル理解するためにCPU主に見るために、パーセンテージを%id一部
wa:I / O待ち占有
hi:ハードウェア占有割り込み
si:ソフトウエア割り込みが占有
st:仮想化の占有率を

メモリ情報の4行目

total:合計メモリ容量
free:空きメモリ
used:使用メモリ
buff/cache:物理メモリとスワップメモリ​​のバッファの合計

第5幕は宇宙情報を交換します

total:合計スワップスペース
free:空きスワップスペース
used:使用済みスワップスペース
avail Mem:使用可能な物理スペース

プロセス情報領域の各列の説明

  • PID:プロセスID
  • USER:プロセス所有者のユーザー名
  • PR:優先度
  • NI:適度な程度の値。負の値は優先度が高いことを示し、正の値は優先度が低いことを示します
  • VIRT:プロセスで使用される仮想メモリの合計量(KB単位)
  • RES:プロセスで使用される物理メモリのサイズ(KB単位)
  • SHR:共有メモリサイズ、単位kb
  • S:プロセスステータス
  • %CPU:最後の更新から現在CPUまでに費やされた時間の割合
  • %MEM:プロセスで使用された物理メモリの割合
  • TIME+:プロセスCPU使用された合計時間(1/100秒単位)
  • COMMAND :コマンド名/コマンドライン

一般的に使用される上位のコマンド

  • Pキー:CPU使用率のパーセンテージに従ってソート
  • Mキー:常駐メモリのサイズに従ってソート
  • Nキー:開始時間に従ってソート
  • cキー:表示コマンド名と完全なコマンドラインを切り替えます
  • hキー:トッププログラムのオンラインヘルプ情報を取得する
  • Kキー:プロンプトに従って指定されたプロセスのPID番号を入力し、Enterキーを押して対応するプロセスを終了します
  • qキー:トッププログラムを終了します
  • ナンバー1キー:CPUのナンバーとステータスを表示します

プロセス情報の表示pgrep

特定の条件に従ってプロセスPID情報を照会する

pgrep -l 进程关键字 #指定查看进程名

  • -l プロセス名を表示する
  • -U 特定のユーザーを指定する
  • -t 指定ターミナル

プロセスツリーのpstreeを表示する

pstree -aup [用户名]
  • -a:完全な情報を表示する
  • -u:対応するユーザー名を一覧表示します
  • -p:対応するPID番号を一覧表示します


ここではツールである頂上より多くの機能を持つトップと同様に、

#如何安装
 yum install -y atop

プロセスの開始方法

手動スタート

  • フォアグラウンドで開始:ユーザーがコマンドを入力すると、バイトがプログラムを実行します
  • バックグラウンドで開始:コマンドラインの最後に"&"記号を追加[作業効率の向上]

例:外部ネットワークからソフトウェアをダウンロードする場合は、バックグラウンドでダウンロードします。
現時点では、待機のみ可能で、他の操作は実行できません

。バックグラウンドに切り替えた後は、いつでも他のコマンドを実行できます。

スケジュール開始

  • atコマンドを使用して、1回限りのスケジュールされたタスクを設定します
  • crontabコマンドを使用して、定期的にスケジュールされたタスクを設定します

プロセスのフロントエンドとバックエンドのスケジューリング

Ctrl+z
現在のプログラムを一時停止する、つまりバックグラウンドに転送して実行を停止するための組み合わせキー
例:vim test.sh次に実行Ctrl+z

jobsコマンド
バックグラウンドでタスクのリストを表示する
例:jobs -lオフにされたばかりのタスクを表示する

fgコマンド
バックグラウンドプロセスをフォアグラウンドに復元するには、タスク番号を指定します。
例:fg 1復元jobs中にオフにされたタスクを確認できます。3108

プロセスの操作を終了します

ctrl+cキーの組み合わせ

  • 実行中のコマンドを中断します

kill、killallコマンド

  • kill指定されたPID番号のプロセスを終了するために使用されます
  • killall指定された名前に関連するすべてのプロセスを終了するために使用されます
  • -9強制終了するオプション

指定されたプロセスtest.sh

強制終了しますすべてのVIMプロセスを強制終了します

でタスク管理を計画する

atは1回限りのスケジュールされたタスクです

at [HH:MM] [yyyy-mm-dd]

Ctrl+Dタスク送信ボタンを押します

。次に例を示します。

スケジュールされたタスク管理crontab

あらかじめ設定した時間(分、時、日、月、週)に従って、ユーザーが指定したコマンド操作を繰り返します。

定期的にスケジュールされたタスクです

メイン設定ファイル
グローバル構成ファイル、ファイル内:/etc/crontab
システムデフォルト設定、ディレクトリ内:/etc/cron.*/
ユーザー定義設定、ファイル内:/var/spool/cron/用户名

crontabのスケジュールされたタスクを管理する

スケジュールされたタスクを編集する

crontab -e 【-u 用户名】      
#-u缺省时默认当前用户

スケジュールされたタスクを表示する

crontab -l 【-u 用户名】

スケジュールされたタスクを削除する

crontab -r 【-u 用户名】

crontabタスク構成の形式

代表的な意味 時間 日付 週間 コマンド
番号の範囲 0〜59 0〜23 1〜31 1〜12 0〜7 実行するコマンド

週数が0または7の場合、「日曜日」を意味します

時間価値の特別な表現方法

*範囲内の任意の時間を
,表し、間隔内の複数の離散時点を
-表し、連続時間範囲を
/表し、間隔の時間頻度を表します

応用例

0 17 * * 1-5         
#周一到周五每天1730 8 * * 1,3,5       
#周一,周三,周五8.30
0 8-18/2 * * *       
#8点到18点每两小时
0 * */3 * *          
#每三天

crontab -e [-uroot]スケジュールされたタスクを編集します

  1. 毎分定期的にルールを実行する
1分钟执行: */1 * * * *或者* * * * *5分钟执行: */5 * * * *
  1. 1時間ごとにルールを実行する
每小时执行: 0 * * * *或者0 */1 * * *
每天上午7点执行:0 7 * * *
每天上午710分执行:10 7 * * *
  1. ルールを1日1回定期的に実行する
每天执行 0 0 * * *
  1. 週に1回定期的にルールを実行する
每周执行 0 0 * * 0
  1. ルールを月に1回定期的に実行します。
每月执行 0 0 1 * *
  1. 年に1回定期的にルールを実行する
每年执行 0 0 1 1 *

その他の例

5 * * * * ls         
#指定每小时的第5分钟执行一次ls命令
30 5 * * * ls        
#指定每天的 5:30 执行ls命令
30 7 8 * * ls        
#指定每月8号的730分执行ls命令
30 5 8 6 * ls        
#指定每年的68530执行ls命令
30 6 * * 0 ls        
#指定每星期日的6:30执行ls命令[注:0表示星期天,1表示星期1,以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。]
30 3 10,20 * * ls    
#每月10号及20号的330执行ls命令[注:“,”用来连接多个不连续的时段]
25 8-11 * * * ls     
#每天8-11点的第25分钟执行ls命令[注:“-”用来连接连续的时段]
*/15 * * * * ls      
#每15分钟执行一次ls命令 [即每个小时的第0 15 30 45 60分钟执行ls命令 ]
30 6 */10 * * ls     
#每个月中,每隔106:30执行一次ls命令[即每月的1112131日是的630执行一次ls命令。 ]

方法2:

echo ‘30 7 * * 6 /usr/bin/systemctl httpd restart’ >> /var/spool/cron/root

おすすめ

転載: blog.csdn.net/qq_42427971/article/details/113521179