Linux作業系統概述(五)
第十三單元 kickstart自動安裝指令碼
1.yum install -y system-config-kickstart httpd
安裝system-config-kickstart和httpd
2.system-config-kickstart
-
設定kickstart
-
vim ks.cfg
3.儲存ks.cfg到/var/www/html
物理機:
vim creatvm.sh
sh creatvm.sh westos
第十四單元 系統延時任務和定時任務
1.系統延時任務
at 14:48 設定任務執行時間
at> rm -fr /mnt/* 任務動作
at> 用ctrl+D發起任務
at now+1min 延時1分鐘
at> rm -fr /mnt/*
at>
at -l 檢視任務列表
at -c 任務號 檢視任務內容
at -r 任務號 取消任務
注意:
當任務有輸出時,輸出會以郵件形式傳送給at任務的發起者
at now+1min
at> echo hello
at>
mail -u root 檢視超級使用者的郵件
1 檢視第一封郵件
q 退出
/var/spool/mail/root 清空郵件
2.at任務的黑白名單
1)/etc/at.deny
黑名單,系統中預設存在,在此檔案在出現的使用者不能執行at
vim /etc/at.deny ,將使用者student寫入黑名單:
使用者student不能執行at,但westos使用者可以執行:
2)/etc/at.allow
白名單,系統中預設不存在,當檔案出現時,普通使用者不能執行at,只有在名單出現的使用者才可以,並且/etc/at.deny失效
vim /etc/at.allow,將使用者student寫入白名單
此時黑名單失效,普通使用者只有studnt可以執行at,westos使用者不能執行:
3.系統的定時任務
1)crontab時間表示方式
* * * * * 每分鐘 */2 * * * * 每兩分鐘 */2 09-17 * * * 早9點-晚5點每兩分鐘 */2 */2 * * * 每隔2小時每兩分鐘 */2 09-17 1 3,5 5 3月和5月每週週五和3月1日,5月1日,早9點-晚5點,每兩分鐘 */2 09-17 * * 5 每週週五早9點-晚5點每兩分鐘
2)系統控制crontab的服務
crond.service 當程式開啟時,定時任務生效
關閉服務後,定時任務失效:
再次重啟服務,定時任務生效:
3)
crontab -e -u 編輯crontab
crontab -l -u 列出crontab
crontab -r -u 刪除crontab
4)檔案方式設定定時任務
vim /etc/cron.d/westos westos名稱任意
* * * * * username action
* * * * * root rm -fr /mnt/*
非互動式:
echo “* * * * * root rm -fr /mnt/*” > /etc/cron.d/westos
cd /etc/cron.d
這種方式定義的crontab使用crontab -l看不到
定義crontab每分鐘執行一次任務:
一分鐘後任務執行:
5)crontab的黑白名單
/etc/cron.deny
黑名單,系統中預設存在,在此檔案在出現的使用者不能執行crontab
/etc/cron.allow
白名單,系統中預設不存在,當檔案出現時,普通使用者不能執行crontab,只有在名單出現的使用者才可以,並且/etc/cron.deny失效
這兩個名單都不會影響/etc/cron.d/目錄下定時任務的發起和執行
* * * * * westos rm -fr /home/westos/*
4.系統中臨時檔案的管理方式
cd /usr/lib/tmpfiles.d
vim westos.conf
d /mnt/westos 777 root root 5s
systemd-tmpfiles --create /usr/lib/tmpfiles.d/* 讀取目錄裡所有檔案並按照其規則去建立
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/* 清理臨時檔案
第十五單元 linux系統中的磁碟管理
1.本地儲存裝置的識別
fdisk -l 真實存在的裝置(不一定是系統識別的)
cat /proc/partitions 系統識別的裝置
blkid 系統可以使用的裝置
df 系統正在掛載的裝置
2.裝置的掛載與解除安裝
1)裝置名稱
/dev/xdx /dev/hd0 /dev/hd1 /dev/sda /dev/sdb /dev/sda1 /dev/sdb1
/dev/sr0 光碟機
/dev/mapper/* 虛擬裝置(用軟體模擬出來的)
2)裝置的掛載
mount 裝置 掛載點
mount /dev/sdb1 /mnt 掛載sdb1到mnt
umount /dev/sdb1 | /mnt 解除安裝
mount 檢視掛載資訊
mount -o ro /dev/sdb1 /mnt 只讀掛載
mount -o remount,rw /dev/sdb1 /mnt 重新讀寫掛載
3.解決裝置正忙問題
[[email protected] mnt]# umount /mnt
umount: /mnt: target is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
解決方法1:
[[email protected] ~]# lsof /mnt
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
Output information may be incomplete.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash 4572 root cwd DIR 8,17 12288 1 /mnt
kill -9 4572
umount /mnt
解決方法2:
fuser -vm /mnt 檢視
fuser -kvm /mnt 檢視並結束
[[email protected] ~]# fuser -vm /mnt
USER PID ACCESS COMMAND
/mnt: root kernel mount /mnt
root 4843 ..c.. bash
[[email protected] ~]# fuser -kvm /mnt
USER PID ACCESS COMMAND
/mnt: root kernel mount /mnt
root 4843 ..c.. bash
3.磁碟分割槽
1.fdisk -l
2.disk /dev/vdb
m 檢視幫助
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition 刪除
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types
m print this menu
n add a new partition 新建
o create a new empty DOS partition table
p print the partition table 顯示分割槽資訊
q quit without saving changes 退出
s create a new empty Sun disklabel
t change a partition's system id 修改分割槽id
u change display/entry units
v verify the partition table
w write table to disk and exit 儲存
x extra functionality (experts only)
n 新建分割槽
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free) 主分割槽
e extended 擴充套件分割槽
Select (default p): p 主分割槽
Partition number (1-4, default 1): id用預設
First sector (2048-20971519, default 2048): 分割槽起始
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +500M 分割槽大小
Partition 1 of type Linux and of size 500 MiB is set
p 顯示資訊
Command (m for help): p
Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x150d4ea6
Device Boot Start End Blocks Id System
/dev/vdb1 2048 1026047 512000 83 Linux
當系統已經有三個分割槽時:
Command (m for help): n
Partition type:
p primary (3 primary, 0 extended, 1 free)
e extended
Select (default e): 當有三個主分割槽時需要先劃分擴充套件分割槽
Using default response e
Selected partition 4
First sector (3074048-20971519, default 3074048):
Using default value 3074048
Last sector, +sectors or +size{K,M,G} (3074048-20971519, default 20971519):
Using default value 20971519
Partition 4 of type Extended and of size 8.5 GiB is set
Command (m for help): p
Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x150d4ea6
Device Boot Start End Blocks Id System
/dev/vdb1 2048 1026047 512000 83 Linux
/dev/vdb2 1026048 2050047 512000 83 Linux
/dev/vdb3 2050048 3074047 512000 83 Linux
/dev/vdb4 3074048 20971519 8948736 5 Extended
把所有剩餘空間都給擴充套件分割槽
4.給裝置安裝檔案系統
mkfs.xfs /dev/vdb1
mount /dev/vdb1 /mnt
vim /etc/fstab
裝置 掛載點 檔案系統 掛載引數 是否備份 是否檢測
/dev/vdb1 /mnt xfs defaults 0 0
mount -a
重啟後自動掛載:
5.swap分割槽管理
1)swap分割槽建立
劃分分割槽並設定分割槽標籤為82
mkswap /dev/vdb6
swapon -a /dev/vdb6
swapon -s
Filename Type Size Used Priority
/dev/vdb6 partition 511996 0-1
vim /etc/fstab
裝置 掛載點 檔案系統 掛載引數 是否備份 是否檢測
/dev/vdb6 swap swap defaults 0 0
2)swap分割槽刪除
vim /etc/fstab
swapoff -a /dev/vdb6
swapon -s
6.配額
分割槽,格式化
mkdir /public
chmod 777 /public
mount -o usrquota /dev/vdb7 /public
edquota -u student
Disk quotas for user student (uid 1000):
Filesystem blocks soft hard inodes soft hard
/dev/vdb7 0 0 20 0 0 0
vim /etc/fstab
裝置 掛載點 檔案系統 掛載引數 是否備份 是否檢測
/dev/vdb7 /public xfs defaults,usquota 0 0
測試:
[[email protected] ~]$ dd if=/dev/zero of=/public/studentfile bs=1M count=500
7.磁碟加密
分割槽
cryptsetup luksFormat /dev/vdb8
YES
cryptsetup open /dev/vdb8 westos
mkfs.xfs /dev/mapper/westos
mount /dev/mapper/westos /mnt/
touch /mnt/file{1…10}
umount /mnt/
cryptsetup close westos 關閉之後,/dev/mapper/westos檔案消失,掛載原始裝置也不能檢視其中的內容
檢視內容需重新開啟:
cryptsetup open /dev/vdb8 linux
mount /dev/mapper/linux /mnt