1. 程式人生 > >Linux作業系統概述(五)

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