操bb国片四区三区,亚洲一片内射无码,91短视频福利导航,蜜桃臀成人免费在线视频观看

這些Linux運維實用技巧,為什么我給滿分?

2024-07-03 09:03:42 Jinyu

需求

在運維工作中隨著我們積累的經(jīng)驗不斷增多,不知你是否遇到過以下幾個場景:

  • Linux 如何快速刪除大量文件?
  • Vsphere 如何在不重啟的情況下識別新添加的 iscsi 硬盤?
  • Linux中 rm 命令如何做到防誤刪?
  • 不同 Linux 服務器之間如何實現(xiàn)快速掛載?
  • Linux 中如何將用戶快速添加到附屬組?
  • 細心的人往往會通過自己特有的方式來快速處理,不禁讓人拍手叫絕。

下面我就來具體介紹下我的處理方式吧。

1、Linux如何快速刪除大量文件?

在 Linux 中對于刪除大量小文件或刪除大文件,我們一般會通過rm命令直接刪除,這時你就很有可能會遇到以下問題:

  • rm 刪除過程耗時很長,效率低下;

  • rm 刪除完畢后,文件不存在但是磁盤空間仍未釋放;

其實以上問題都和 rm 命令有關(guān),因為 rm 刪除內(nèi)容時,是將目錄的每一個條目逐個刪除(unlink),而且需要循環(huán)重復遍歷很多次;雖然 unlink 解除,但是進程仍可以讀取已刪除的問題件,導致磁盤不釋放。

在此我們可以使用rsync命令來代替 rm。rsync 刪除內(nèi)容時,通過建立好新的空目錄替換掉老目錄,不需要進行大量的遍歷操作,因此效率會高很多。

rsync 提供了一些跟刪除相關(guān)的參數(shù)如下:










rsync --help | grep delete  --del an alias for --delete-during  --deletedelete files that don't exist on the sending side  --delete-before receiver deletes before transfer (default)  --delete-during receiver deletes during transfer, not before  --delete-afterreceiver deletes after transfer, not before  --delete-excluded also delete excluded files on the receiving side  --ignore-errors delete even if there are I/O errors  --max-delete=NUMdon't delete more than NUM files

快速刪除目錄















1. 建立一個空目錄mkdir -p /del_tmp2. 需要清空的目標目錄/del_dest3. 如果目標目錄下有大量的小文件,清空目錄下文件rsync --delete-before -a -H -v --progress --stats ./del_tmp/./del_dest/
選項說明:–delete-before 接收者在傳輸之前進行刪除操作–progress 在傳輸時顯示傳輸過程-a 歸檔模式,表示以遞歸方式傳輸文件,并保持所有文件屬性-H 保持硬連接的文件-v 詳細輸出模式--stats 給出某些文件的傳輸狀態(tài)

快速刪除文件

注意:當SRC和DEST文件性質(zhì)不一致時將會報錯;當SRC和DEST性質(zhì)都為文件【f】時,意思是清空文件內(nèi)容而不是刪除文件;當SRC和DEST性質(zhì)都為目錄【d】時,意思是刪除該目錄下的所有文件,使其變?yōu)榭漳夸洠?/section>

2、Vsphere 如何在不重啟的情況下識別新添加的iscsi硬盤?

Vsphere虛擬機新添加硬盤進行LVM擴容,此時需要重啟刷新文件系統(tǒng),否則無法識別新添加的硬盤。重啟服務器這對于生產(chǎn)環(huán)境來說是不允許的,那么有什么方法能夠?qū)崿F(xiàn)在線刷新文件系統(tǒng)呢?
在此有兩種方法:
第一種方法
沒有新增硬盤前的SCSI設(shè)備參數(shù)如圖

圖片

如果新添加的硬盤為“Direct-Access”類型,因此我們需要執(zhí)行命令,將Id+1后將是新磁盤的Id號:echo'scsi add-single-device 2 0 1 0' > /proc/scsi/scsi

其中:

  • HOST,主機適配器標識,第一個適配器為0,在此新增加硬盤的適配器為2;

  • Channel,主機適配器上的SCSI通道,第一個通道為00,新增加磁盤的SCSI通道仍為00;

  • ID,設(shè)備的SCSI標識 ,即硬盤標識從00開始,新增加磁盤的標識為01;

增加硬盤后的SCSI設(shè)備參數(shù)如圖

圖片

第二種方法:

# 刷新SCSI,需要根據(jù)hosts數(shù)量確認刷新次數(shù)。# 如果系統(tǒng)有3個scsi host,則需要刷新3次echo "- - -" > /sys/class/scsi_host/host0/scanecho "- - -" > /sys/class/scsi_host/host1/scanecho "- - -" > /sys/class/scsi_host/host2/scan

以上兩種方式都可以實現(xiàn)在不重啟服務器的情況下識別到新添加的硬盤,請根據(jù)實際情況進行選擇。

3、Linux中rm命令如何做到防誤刪?

Linux系統(tǒng)中冒號:在bash中是一個內(nèi)建命令,而不單純是一個分隔符,它的主要作用是空命令、參數(shù)擴展、重定向、注釋等。我們可以使用其參數(shù)擴展特性實現(xiàn)rm的防誤刪功能。

格式:${parameter:-test} 功能:如果parameter沒有設(shè)置或者為空,替換為test;否則替換為parameter的值。命令:rm -rf ${dest:-test}用法:當變量dest為空時,刪除test;當變量dest不為空時,刪除test用例:rm -rf /$dest。當變量dest沒有設(shè)置或為空時,則命令變成rm -rf /,這將誤刪系統(tǒng)根目錄,導致系統(tǒng)崩潰。改進:rm -rf /${dest:-test},當變量dest沒有設(shè)置或為空時,會使用test代替,則命令變成rm -rf /test,刪除此目錄不會產(chǎn)生任何影響。

4、不同Linux服務器之間如何實現(xiàn)快速掛載?

不同Linux服務器之間的共享,我們一般通過NFS來實現(xiàn)。但是有一次同事在進行遷移ELK時,使用了sshfs命令快速基于ssh協(xié)議快速實現(xiàn)了數(shù)據(jù)的共享。
SSHFS(Secure SHell FileSystem)是一個客戶端,可以讓我們通過 SSH 文件傳輸協(xié)議(SFTP)掛載遠程的文件系統(tǒng)并且在本地機器上和遠程的目錄和文件進行交互。
具體使用如下:











# 1.安裝 SSHFSyum install sshfs
# 2.創(chuàng)建 SSHFS 掛載目錄mkdir /mnt/data
# 3.使用 SSHFS 掛載遠程的文件系統(tǒng)sshfs test@x.x.x.x:/home/test/ /mnt/data
如果SSH有密鑰授權(quán),我們也可以使用公鑰實現(xiàn)掛載sshfs -o IdentityFile=~/.ssh/id_rsa test@x.x.x.x:/home/test/ /mnt/data
正如你所看到的,通過sshfs命令我們快速實現(xiàn)了掛載,相對于NFS非常方便。

5.Linux中如何將用戶快速添加到附屬組?

對于 Linux 操作系統(tǒng),我們一般使用 usermod 命令來調(diào)整用戶分組,但是在使用過程中是有痛點的。
















# 1.新增3個用戶# useradd test1uid=508(test1) gid=508(test1) groups=508(test1)# useradd test2uid=509(test2) gid=509(test2) groups=509(test2)# useradd test3uid=510(test3) gid=510(test3) groups=510(test3)
# 2.調(diào)整test1 附加組# usermod -G test2 test1uid=508(test1) gid=508(test1) groups=508(test1),509(test2)# usermod -G test3 test1uid=508(test1) gid=508(test1) groups=508(test1),510(test3)# usermod -G test2,test3 test1uid=508(test1) gid=508(test1) groups=508(test1),509(test2),510(test3)

通過以上命令,我們可以看到以下痛點:

  • 每次 usermod 附加組調(diào)整,會覆蓋原來的分組

  • usermod 調(diào)整多個分組時,必須將所有分組一并添加,否則會覆蓋原來分組

那么是否有命令可以讓我們在不必提前知道原來的分組信息的情況下而直接更新分組呢?gpasswd 就可以解決我們的痛點問題,它是Linux下工作組文件/etc/group和/etc/gshadow管理工具,用于將一個用戶添加到組或者從組中刪除。







# 1.將test1添加到test2分組# gpasswd -a test1 test2uid=508(test1) gid=508(test1) groups=508(test1),509(test2)# 2.將test1添加到test3分組# gpasswd -a test1 test3uid=508(test1) gid=508(test1) groups=508(test1),509(test2),510(test3)我們一般不會遇到用戶同時隸屬于多個分組的情況,但是在做文件共享,因權(quán)限分離需求才會用到,此時我們通過gpasswd命令會方便很多。

總結(jié)

在運維過程中我們通過常規(guī)操作就可以解決大多數(shù)問題,但是在處理過程中可能會存在效率不高、操作麻煩等問題。因此在日常工作中要多探索、多總結(jié),這可能會給我們帶來意想不到的效果。


我要咨詢