1. 程式人生 > >linux基礎10

linux基礎10

execute 運行 inetd 組合 read task /var/ nac 排名

周期性計劃任務
crontab命令
系統服務:/etc/init.d/crond(crond必須啟動才會生效)
用戶計劃:/var/spool/cron/用戶名
默認的計劃任務
全局配置:/etc/crontab
系統計劃:/etc/cron.hourly/*(每小時要執行)
/etc/cron.daily/*(每天要執行)
/etc/cron.weekly/*(每星期要執行)
/etc/cron.monthly/*(每月要執行)
[[email protected] 桌面]# rpm -qa | grep cron(查看是否安裝了這個服務)
crontabs-1.10-33.el6.noarch
cronie-anacron-1.4.4-15.el6.x86_64
cronie-1.4.4-15.el6.x86_64
[[email protected]

/* */ 桌面]# /etc/init.d/crond status(查看這個服務是否運行)
crond (pid 2715) 正在運行...
[[email protected] 桌面]# chkconfig crond --list
crond 0:關閉 1:關閉 2:啟用 3:啟用 4:啟用 5:啟用 6:關閉
[[email protected] 桌面]# ls /etc/cron.hourly/(每小時要執行的腳本)
0anacron mcelog.cron
[[email protected] 桌面]# ls /etc/cron.daily/(每天要執行的腳本)
cups logrotate makewhatis.cron mlocate.cron prelink readahead.cron rhsmd tmpwatch
[[email protected]
/* */ 桌面]# ls /etc/cron.weekly/(每星期要執行的腳本)
[[email protected] 桌面]# ls /etc/cron.monthly/(每月要執行的腳本)
readahead-monthly.cron

[[email protected] 桌面]# vim /etc/crontab (主配置文件)
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
*:匹配範圍內任意時間
,:表示多個不連續的時間點
-:表示連續的時間範圍
/n:指定時間頻率,每n...
記錄格式
執行周期,可執行語句
分鐘 小時 日期 月份 星期 可執行語句
執行周期 設置說明
分鐘 從0到59之間的數
小時 從0到23之間的數
日期 從1到31之間的數
月份 從1到12之間的數
星期 0-7之間的整數,0或7代表星期日

執行周期示列:
0 17 * * 1-5 周一到周五每天17:00
30 8 * * 1,3,5 每周一,周三,周五的8:30
0 8-18/2 * * * 8點到18點之間沒2小時
0 0 */3 * * 每三天的0點

crontab命令格式:
編輯cron計劃任務
格式:crontab -e [-u 用戶名]
查看cron計劃任務
格式:crontab -l [-u 用戶名]
刪除crontab計劃任務
格式:crontab -r [-u 用戶名]

[[email protected] 桌面]# crontab -e(編輯計劃任務)
30 7 * * * /etc/init.d/sshd start(每7:30開啟)
30 23 * * * /etc/init.d/sshd stop(每23:30開啟)
[[email protected] 桌面]# crontab -l(查看計劃任務)
30 7 * * * /etc/init.d/sshd start
30 23 * * * /etc/init.d/sshd stop
[[email protected] 桌面]# crontab -r(刪除計劃任務,這個不好用,不可以刪除單條)

計劃任務的授權
cron任務控制
/etc/cron.allow /etc/cron.deny
[[email protected] 桌面]# ls /etc/cron.allow /etc/cron.deny
ls: 無法訪問/etc/cron.allow: 沒有那個文件或目錄
/etc/cron.deny
如果allow文件存在,則允許指定的用戶
否則檢查deny文件,除指定用戶外其余都允許
如果兩個文件都不存在,則只允許root使用

計劃任務中斷與補救
anacron延時補救
任務周期:每小時檢查一次,最近x天以內的任務
由crond服務調度檢查,執行被錯過的任務操作
[[email protected] 桌面]# rpm -ql cronie-anacron | grep etc
/etc/anacrontab (全局配置)
/etc/cron.hourly/0anacron(檢查任務的腳本)
[[email protected] 桌面]# tail -3 /etc/anacrontab (anacreon主配置文件)
1 5 cron.daily nice run-parts /etc/cron.daily
7 25 cron.weekly nice run-parts /etc/cron.weekly
@monthly 45 cron.monthly nice run-parts /etc/cron.monthly

——————————————————————————————————————————————————————
進程管理
程序:保存在磁盤中的可執行文件,是靜態保存的代碼
進程:在CPU及內存中運行的程序指令,是動態的執行代碼,進程可以創建一個或者多個子進程(父/子進程)
查看進程樹
pstree命令
格式:pstree [選項] [PID或用戶名]
常用命令選項
-a:顯示完整的命令行
-u:列出各進程所屬的用戶名
-p:列出對應的PID號
[[email protected] ~]# pstree -aup xx01
bash,5905
└─vim,5930
查看進程快照
ps命令
格式:ps [選項]
常用命令選項
-a:顯示當前終端下的所有進程
-u:使用以用戶為主的格式輸出信息
-x:顯示當前用戶在所以終端下的進程
-e:顯示系統內所有的進程
-l:使用長格式輸出信息
-f:以最完整的格式輸出信息
[[email protected] ~]# ps aux(詳細度高,列出正在運行的所有進程)
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 19364 1540 ? Ss 17:16 0:03 /sbin/init
root 2 0.0 0.0 0 0 ? S 17:16 0:00 [kthreadd]
..... ....
[[email protected] ~]# ps -elf(詳細度低,列出正在運行的所有進程)
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
4 S root 1 0 0 80 0 - 4841 poll_s 17:16 ? 00:00:03 /sbin/init
1 S root 2 0 0 80 0 - 0 kthrea 17:16 ? 00:00:00 [kthreadd]
..... ....
STAT列,體現進程的狀態
-R:正在運行
-S:處於休眠狀態,在需要是可喚醒
-D:不可中斷的休眠,通常為等待I/O(讀寫)的情況
-T:停止狀態
-Z:僵屍狀態,程序已經終止,但占用的內存未被釋放

進程動態排名
top交互式工具
格式:top [-d刷新秒數] [-U 用戶名](刷新秒數缺省為3秒)
[[email protected] 桌面]# top -d5(每5秒刷新一次)

top - 22:40:38 up 5:23, 2 users, load average: 0.02, 0.02, 0.00
Tasks: 181 total, 1 running, 180 sleeping, 0 stopped, 0 zombie
Cpu(s): 3.6%us, 0.4%sy, 0.0%ni, 96.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1004768k total, 852424k used, 152344k free, 69264k buffers
Swap: 5054460k total, 0k used, 5054460k free, 365344k cached

檢索進程信息
pgrep命令
用途:pgrep [選項] 查詢條件
常用命令選項
-l:輸出進程名,不僅是PID
-U:檢索指定用戶的進程
-t:檢索指定終端的進程
[[email protected] 桌面]# pgrep -l net
13 netns
2498 xinetd

進程前後臺調度
前臺啟動:輸入正常的命令行,運行期間占用當前終端
後臺啟動:在命令行末尾添加&符號,運行期間不占用當前終端
ctrl+z組合鍵:掛起當前進程(暫停並轉入後臺)
jobs命令:查看後臺任務列表
fg命令:將後臺任務恢復到前臺運行
bg命令:激活後臺被掛起的任務
(fg,bg命令未指定序號時,缺省為最近的1個任務)

終止進程
ctrl+c組合鍵
kill,killall命令
kill PID號,killall進程名
選線-9表示強制終止
pkill命令:殺死符合指定條件的進程,用法與pgrep相似
[[email protected] 桌面]# killall sleep
[1]- 已終止 sleep 900
[2]+ 已終止 sleep 900

————————————————————————————————————————
linux啟動流程
加載BIOS,檢查硬件信息
讀取並執行第一個開機設備內MBR的boot Loader
運行grub引導加載kernel
內核啟動/sbin/init程序
init系統初始化
確定默認的運行級別
觸發runleve事件,運行/etc/rc.d/rc
最後執行/etc/rc.local
加載終端或X-Windows接口

————————————————————————————————————

linux基礎10