Linux下如何實(shí)現(xiàn)創(chuàng)建/刪除軟連接
廢話不說(shuō)直接正題
軟鏈接,又稱符號(hào)連接,與硬鏈接不同的是,軟鏈接不鏈向索引節(jié)點(diǎn)號(hào),而是鏈向目錄。
相當(dāng)于的Windows中的快捷方式。它實(shí)際上是一個(gè)特殊的文件。
在符號(hào)連接中,文件實(shí)際上是一個(gè)文本文件,其中包含的有另一文件的位置信息。
1.創(chuàng)建軟鏈接//就是說(shuō)將源文件也可以是目錄映射到目標(biāo)文件或目標(biāo)目錄上。
ln -s源文件名目標(biāo)文件名
這里將/ softwarehouse映射到/ var / www / html目錄
這時(shí)候我們可以去的/ var / www / html等下看看
這一個(gè)淡藍(lán)色的就是軟鏈接,如果源目錄有內(nèi)容,比如a.txt中,那么目標(biāo)目錄也會(huì)有一個(gè)a.txt中的鏡像。
2.刪除軟鏈接第一種方式
去目標(biāo)文件目錄下直接rm softwarehouse ,
這種方式會(huì)給你提醒rm:刪除符號(hào)鏈接'softwarehouse'?Y(是否刪除軟鏈接)
強(qiáng)烈建議這種方式,不然誤刪源文件源目錄幾率太大。
第二種方式
rm -rf目標(biāo)文件名全路徑也就是rm -rf / var / www / html 看仔細(xì),一定不要rm -rf / var / www / html /,這種是刪除文件目錄,到時(shí)源文件的東西也沒(méi)了,大家在按標(biāo)簽自動(dòng)補(bǔ)全的時(shí)候注意了,會(huì)默認(rèn)將最后的/補(bǔ)上,自己要記得刪。
強(qiáng)烈建議第一種刪除方式!
Linux創(chuàng)建軟鏈接和刪除時(shí)注意事項(xiàng)記一次小型事故因日志問(wèn)題導(dǎo)致空間存儲(chǔ)不足想來(lái)是運(yùn)維碰到的很常見的事情,本次事故發(fā)生就是日志量過(guò)大導(dǎo)致/var這個(gè)目錄空間使用率超過(guò)了95%,so我的初衷很簡(jiǎn)單一方面刪除多余日志釋放空間另一方面想辦法擴(kuò)大/var目錄的使用空間,于是我想到了通過(guò)使用軟鏈接的方式先將/var目錄整個(gè)移到/data較大的掛載目錄下,然后給/data/var做個(gè)軟鏈接到/var即可。
接下來(lái)就踩坑環(huán)節(jié)1、使用mv /var /data/var(小伙伴們千萬(wàn)不要這樣做,尤其是服務(wù)器上有正在運(yùn)行的服務(wù)時(shí),/var這個(gè)目錄是很關(guān)鍵的一個(gè)位置,此時(shí)移動(dòng)必然報(bào)錯(cuò),且會(huì)出現(xiàn)部分移動(dòng)部分未移動(dòng),處理起來(lái)很麻煩)
2、使用ln -s /data/var /var(此時(shí)如果/var這個(gè)是目錄的話,源目錄軟鏈接會(huì)出現(xiàn)在目標(biāo)目錄的下一級(jí)路徑, 即在 /var/ 中會(huì)看見一個(gè)var的文件夾,如果存在文件則不能執(zhí)行成功,因此在做軟鏈接時(shí)要首先確保目標(biāo)文件/目錄不存在)
3、因?yàn)楸救瞬僮鲿r(shí),剛好/var目錄我怕ln命令不會(huì)自動(dòng)創(chuàng)建(鬧個(gè)烏龍)手動(dòng)建了一個(gè),結(jié)果就出現(xiàn)了2的情況,于是乎怎么辦,建了一個(gè)/var/var的軟鏈接,那肯定不行啊,只能刪掉了,說(shuō)干就干cd /var,接著rm -rf /var/哎一個(gè)習(xí)慣性tab補(bǔ)全,還帶了個(gè)"/“,再然后就全完了。。。(所以這里又有一個(gè)關(guān)鍵點(diǎn),就是rm命令在刪除目錄時(shí)帶不帶”/“,經(jīng)過(guò)測(cè)試筆者發(fā)現(xiàn)如果刪除的是目錄則帶不帶效果是相同的,但如果刪除的是軟鏈接就會(huì)有天差地別,不帶”/“刪除的是僅僅是軟鏈接本身,帶”/"則刪除的可就是源數(shù)據(jù)文件了,如果恰好你還沒(méi)有備份,恰好還正式環(huán)境,那你可以準(zhǔn)備好跑路了-。-)
4、其次說(shuō)一下如果不該發(fā)生的還是發(fā)生了怎么辦,千萬(wàn)不能胡亂操作:
1)建議立刻先使用umount卸載誤刪文件所在的分區(qū)(前提是非/根目錄),避免因?yàn)榇疟P因?yàn)槠渌僮鞲采w掉刪除的內(nèi)容,便于數(shù)據(jù)恢復(fù);
2)這時(shí)可以使用lsof|grep deleted查看仍然打開的活動(dòng)進(jìn)程,查看到剛剛刪除的內(nèi)容(如果幸運(yùn)的話),然后通過(guò)cd /proc/pid /fd(這里pid就是通過(guò)lsof命令獲取到的進(jìn)程id),接著在fd里就能找到已刪除的文件,例如刪除的是文件3,就cp 3 /恢復(fù)的指定目錄中 即可;
3)2的方法筆者試了試,也可能是運(yùn)氣不太好只能恢復(fù)一小丟丟文件,建議1直接轉(zhuǎn)3,查看自己系統(tǒng)版本uname -a或者lsb_release -a,查看文件系統(tǒng)df -T,筆者文件系統(tǒng)是ext4(普通默認(rèn)ext3、ext4),因此使用extundelete工具進(jìn)行文件恢復(fù),這個(gè)工具默認(rèn)是沒(méi)有安裝的需要到官網(wǎng)下載自行安裝官網(wǎng)地址,下載完解壓打開目錄找到直接運(yùn)行./configure然后make&&make install即可。
接下來(lái)怎么使用網(wǎng)上教程多的是,這里說(shuō)下本人使用結(jié)果,因?yàn)槭堑谝淮闻龅竭@種情況很多人可能都會(huì)陷入一個(gè)手忙腳亂的地步,這里提醒小伙伴們一定不能慌,慌是解決不了問(wèn)題的,筆者當(dāng)時(shí)就是處于慌亂之中病急亂投醫(yī),結(jié)果一頓操作導(dǎo)致磁盤刪除的那部分空間被覆寫了,當(dāng)然也就無(wú)法恢復(fù)了,最后鄭重提醒運(yùn)維小伙伴們?cè)谶M(jìn)行重要操作前一定要先進(jìn)行備份和充足的準(zhǔn)備工作。
總結(jié)以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
