作業管理:
前臺作業:通過終端啟動,且啟動后一直占據終端;
后臺作業:通過終端啟動,但啟動后隨即轉入后臺運行(釋放終端)
將作業放入后臺的操作
1)運行中的作業:ctrl+z
2)還未執行的作業:command &
后臺作業雖然被送往后臺運行,但其依然和終端相關,退出終端,將關閉后臺作業,如果希望送往后臺后,剝離與終端的關系:
nohup command &
screen command &
jobs:可以查看所有的作業
作業控制:
fg [[%]job_num]:把指定的后臺作業調回前臺
bg [[%]jpb_num]:讓送往后臺的作業在后臺繼續運行
kill[[%]job_num]:終止指定的進程
并行運行多個進程,從而可以提供效率
1) vi all.sh
f1.sh
f2.sh
f3.sh
2) (f1.sh&);(f2.sh&);(f3.sh&)
3) { f1.sh&;f2.sh&;f3.sh& }
進程優先級調整:
靜態優先級:100-139
進程默認啟動時的nice值為0,優先級為120
只有根用戶才能降低nice值(提高優先級)
nice命令:
nice [option][command [arg]…]
renice命令:
renice [-n] priority pid…
查看:
ps axo pid,comm,ni
Linux任務計劃
在未來的某個時間段執行一次任務:at
at [option]Time
選項:
-V 顯示版本信息
-l 列出指定隊列中等待運行的作業;相當于atq
-d 刪除指定的作業,相當于atrm
-c 查看具體作業任務
-f /path/from/somefile 從指定的文件中讀取任務
-m 當任務被完成之后,將給用戶發送郵件,即使沒有標準輸出
注意:作業執行命令的結果中的標準輸出和錯誤以郵件通知給相關用戶
TIME:定義出什么時候進行at這項任務的時間
HH:MM[yyyy-mm-dd]
noon,midnight,teatime(4pm)
tomorrow
now+#{minutes,hours,days,or weeks}
at任務的執行方式:
1)交互式 2)重定向 3)at -f 文件
at任務計劃依賴于atd服務,需要啟動才能實現at任務
at隊列存放在/var/spool/at目錄中
/etc/at.deny文件控制者哪些用戶不能執行at任務計劃
/etc/at.allow文件控制著哪些用戶可以使用任務計劃,默認情況下沒有創建該文件,如果同時一個用戶同時存在于這兩個文件中,則以allow文件為準,如果兩個文件都不存在,則表示只有root用戶才可以使用at命令。
batch:系統自行選擇空閑時間去執行此處指定的任務
周期性運行某任務:cron
cronie:主程序包,提供crond守護進程及相關輔助工具
cronie-anacron:cronie的補充程序,用于監控cronie任務執行情況,如cronie中的任務在過去該運行的時間點未能正常運行,則anacron會隨后啟動一次此任務
crontabs:包含centos提供系統維護任務
確保crond守護處于運行狀態
Centos 7:systemctl status crond
Centos 6: service crond status
計劃周期性執行的任務提交給crond,到指定時間會自動運行系統cron任務:
系統維護作業:
/etc/crontab
用戶任務:
crontab命令
計劃任務的日志:/var/log/cron
時間表示法:
1)特定值
給定時間點有效取值范圍內的值
2)*
給定時間點上有效取值范圍內的所有值
表示“每…"
3) 離散取值
#,#,#
4)連續取值
#-#
5)在指定時間范圍內,定義步長
/#:#即為步長
時間格式:
@reboot 每次重啟
@yearly 0 0 1 1 *
@annually 0 0 1 1 *
@monthly 0 0 1 * *
@weekly 0 0 * * 0
@daily 0 0 * * *
@hourly 0 * * * *
系統的任務計劃:
/etc/crontab
/etc/cron.d/ 存放一些配置文件
/etc/cron.hourly/
/etc/cron.daily/
/etc/cron.weekly/
/etc/cron.monthly/
用于存放任務計劃腳本
anacron系統:
a.運行計算機關機時cron不運行的任務,Centons6以后版本取消anacron服務,由crond服務管理
b.假設計算機沒有一直開機
c.對筆記本電腦,臺式機,工作站及其他不一致開機的系統很重要
d.對偶爾要關機的服務器很重要
e.配置文件:/etc/anacrontab,負責執行/etc/cron.daily/ /etc/cron.weekly/ /etc/monthly/中系統任務,/etc/cron.hourly/由/etc/cron.d/0hourly負責執行
字段1:如果在這些時間沒有運行這些任務
字段2:再重新引導后等待這么多分鐘后運行它
字段3:任務識別器,在日志文件中標識
字段4:要執行的任務
當任務執行時,更新/var/spool/anacron/中文件的時間戳
臨時文件管理
Centos6使用/etc/cron.daily/tmpwatch 定時清除臨時文件
Centos7使用systemd-tmpfiles-setup服務實現
配置文件:
/etc/tmpfiles.d/*.conf
/run/tmpfiles.d/*.conf
/usr/lib/tmpfiles.d/*.conf
systemd-tmpfiles -clean|remove|create configfile
任務計劃:
crontab命令定義:每個用戶都有專用的cron任務文件
crontab [option][-l|-r|-e][-i]
-l:列出所有任務
-e:編輯任務
-r:移除任務
-i:同-r一起使用,以交互模式移除指定任務
-u user:僅 root可運行,指定用戶管理cron任務
控制用戶執行任務計劃:
/etc/cron.{allow|deny}
at和crontab共性和個性
at和crontab都是用來做任務計劃的
at:一次性作業
crontab:周期性作業
沒有被重定向的輸出會被郵寄給用戶
根用戶可以修改其他用戶作業
Tips:運行結果的標準輸出和錯誤以郵件的形式通知給相關用戶
command &>/dev/null
對于cron任務來說,%有特殊用途,如果在命令中要使用%,則需要轉義,不過,如果把%放于單引號中,也可以不用轉義
系統啟動與內和管理
linux: GNU/KERNEL
kernel+rootfs
kernel:進程管理,內存管理,網絡管理,驅動程序,文件系統,安全功能
rootfs:程序和glibc
庫:函數集合,function,調用接口(頭文件負責描述)
過程調用:procedure,無返回值
函數調用:function
程序;二進制執行文件
內核設計流派:
單內核(monolithic kernel):linux
把所有功能集成于同一個程序
微內核(micro kernel):微軟,solaris
每種功能使用一個單獨的子系統
linux內核特點:
支持模塊化:.ko(內核對象)
如:文件系統,硬件驅動,網絡協議等
支持內核模塊的動態裝載和卸載
組成部分:
核心文件:/boot/vmlinuz-version-release
ramdisk:輔助的偽根文件系統
centos5:/boot/initrd-version-release.img
centos6,7:/boot/initramfs-version-release.img
模塊文件:/lib/modules/version-release
注:#表示系統的默認啟動級別,在/etc/inittab中進行設置
Centos6啟動流程:
1)加載BIOS的硬件信息,獲取第一個啟動設備
2)讀取第一個啟動設備MBR的引導加載程序(grub)的啟動信息
3)加載核心操作系統,核心開始解壓縮,并嘗試驅動所有硬件設備
4)核心執行init程序,并獲取默認的運行信息
5)init程序執行/etc/rc.d/rc.sysinit文件
6) 啟動核心的外掛模塊(/etc/modprobe.conf)
7) init執行運行的各個批處理文件(scripts)
8)init執行/etc/rc.d/rc.local
9) 執行/bin/login程序,等待用戶登錄
10)登錄之后開始以shell控制主機
啟動流程:
POST:Power-On-Self-Test,加電自檢,是BIOS功能的一個主要部分,負責完成對cpu,主板,內存,硬盤子系統,顯示子系統,串并行接口,鍵盤,CD-ROM光驅等硬件情況的檢測
ROM:BIOS,Basic Input and Output System,保存著有關計算機系統最重要的基本輸入輸出程序,系統信息設置,開機加電自檢程序和系統啟動自舉程序等
RAM:cmos互補金屬氧化物半導體,保存各項參數的設定
按次序查找引導設備,第一個有引導程序的設備為本次啟動設備
bootloader:引導加載器,引導程序
windows:ntloader 僅是啟動os
linux:功能豐富,提供菜單,允許用戶選擇要啟動系統或不同的內核版本,把用戶選定內核裝載到內存中的特定空間中,解壓,展開,并把系統控制權移交給內核
lilo:linux loader grub:grand unified bootloader
MBR:
446:bootloader 64:分區表 2:55AA
GRUB:
primary boot loader :1st stage 1.5stage
secondary boot loader: 2nd stage 分區文件
kernel:
自身初始化:
探測可識別到的所有硬件設備
加載硬件驅動程序(可能借助于ramdisk加載驅動)
以只讀方式掛載根文件系統
運行用戶空間的第一個應用程序:/sbin/init
init程序的類型:
Sysv:init,Centos 5 之前
配置文件:/etc/inittab
Upstart:init Centos 6
配置文件:/etc/inittab /etc/init.d/*.conf
Systemd:systemd Centos 7
配置文件:/usr/lib/systemd/system
/etc/systemd/system
ramdisk:
內核中的特征之一:使用緩沖和緩存來加速對磁盤上的文件訪問
ramdisk–>ramfs 提高速度
Centos 5:initrd 工具程序:mkinitrd
Centos 6:initramfs 工具程序:mkinitrd dracut
系統初始化流程:
POST–>BOOTSequence(BIOS)–>Bootloader(MBR)–>kernel(ramdisk)–>rootfs(只讀)–>init(systemd)
系統的幾種運行級別:
0:關機
1:單用戶模式(root自動登錄)single 維護模式
2:多用戶模式,啟動網絡功能,但不啟用NFS
3:多用戶模式,正常模式,文本界面
4:預留級別,可同于3級別
5:多用戶模式,正常模式,用戶界面
6:重啟
默認級別;3,5
切換級別:init #
查看級別:runlevel,who -r
Centos 6 /etc/inittab和相關文件
設置系統默認的運行級別
id:3:initdefault:
/etc/init/control-alt-delete.conf
使用control-alt-delete的組合鍵可以進行關機操作
/etc/init/tty.conf
復位tty終端設備
/etc/init/start-ttys.conf
如果runlevel是2,3,4其中的某個狀態,則啟動tty終端
/etc/init/rc.conf
系統運行級別的合理性
/etc/init/prefdm.conf
/etc/rc.d/rc.sysinit:系統初始化腳本
1) 設置主機名
2)設置歡迎信息
3)激活udev和selinux
4)掛載/etc/fstab文件中定義的文件系統
5)檢測根文件系統,并以只讀方式重新掛載根文件系統
6)設置系統時鐘
7)激活swap設備
8)根據/etc/sysctl.conf文件設置內核參數
9)激活lvm及software raid設備
10)加載額外設備的驅動程序
11)清理操作
/etc/rc.d/rc#.d
K##*:##表示運行次序,數字越小,越先運行,數字越小的服務,通常為依賴別的服務
S##*:##表示運行次序,數字越小,越先運行,數字越小的服務,通常為被依賴的服務
chkconfig命令:
查看服務在所有級別的啟動或關閉設定情況
chkconfig [–list][name]
Sysv的服務腳本放置于/etc/rc.d/init.d(/etc/init.d)
添加:chkconfig –add name
1、每周2, 4, 7備份/var/log/messages文件至/logs目錄中,文件名形如“messages-yyyymmdd”
2、每兩小時取出當前系統/proc/meminfo文件中以S或M開頭的信息追加至/tmp/meminfo.txt文件中
原創文章,作者:Stupid_L,如若轉載,請注明出處:http://www.www58058.com/44724
總結的很完整,但是過于簡略了哦,,而且分類也不夠明確,建議這里進行標準化哦。