欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Linux自定義防誤刪腳本的思路與測試

 更新時間:2021年09月02日 15:03:15   作者:kaliarch  
相信很多朋友都遇到過在linux下誤刪除文件的時候,此刻的心中仿佛有無數(shù)的羊駝在奔騰,下面這篇文章主要給大家介紹了關(guān)于Linux自定義防誤刪腳本的思路與測試的相關(guān)資料,需要的朋友可以參考下

一、背景

俗話說的真好,常在河邊走,怎能不濕鞋,本想刪除服務(wù)器上臨時的系統(tǒng)掃描文件如下圖:

由于是在root的家目錄,本想這/tmp/下有很多系統(tǒng)掃描文件,系統(tǒng)性的tab了一下,由于是自己的監(jiān)控測試服務(wù)器也沒多想,tab了一下應(yīng)該是有多個文件,之后直接跟*然后刪除全部掃描文件,但發(fā)現(xiàn)回車的一瞬間,發(fā)現(xiàn)/tmp只有一個掃描文件,瞬間頭皮發(fā)麻,雖然只是自己的測試服務(wù)器,但下面也有很多腳本和數(shù)據(jù)文件,心里又氣又恨。查看了下測試服務(wù)器只有一個根也沒其他磁盤,此時ext3grep/extundelete這類工具就沒辦法了,想想也是有其他辦法,但比較麻煩,算了就當(dāng)買個教訓(xùn)吧,里面寫個自定義rm命令腳本,來避免此類事情的發(fā)生。

二、思路

由于是過度自信,操作執(zhí)行rm -rf手速感人,也沒多看,因此自定義rm命令即可

  • 通過alias rm來移動文件到一個回收站目錄
  • 定期的在系統(tǒng)磁盤允許可控的使用率情況下來對文件進(jìn)行刪除

因此寫了一下腳本來實現(xiàn),與其說放勿刪,不如說是延遲刪除更為確切

git地址

#!/bin/bash
# auth:kaliarch
# function:自定義rm命令,每天晚上定時清理

# 定義rm刪除命令替換腳本
CMD_SCRIPTS=$HOME/.rm_scripts.sh
# 定義回收站目錄
TRASH_DIR=$HOME/.TRASH_DIR
CRON_FILE=/var/spool/cron/root
BASHRC=$HOME/.bashrc

[ ! -d ${TRASH_DIR} ] && mkdir -p ${TRASH_DIR}

cat > $CMD_SCRIPTS <> $CRON_FILE
echo "刪除目錄:$TRASH_DIR"
echo "刪除腳本:$CMD_SCRIPTS"
echo "請執(zhí)行:source $BASHRC 來加載文件或退出當(dāng)前shell重新登錄"

三、測試

運行腳本替換rm命令

之后推出重新登錄,或按提示source文件加載生效

腳本生成文件

可以看到在腳本運行用戶的家目錄,會生成回收站目錄和文件刪除腳本,會創(chuàng)建定時任務(wù)定時清理回收站,可以根據(jù)后期磁盤情況,自定義周期清理,

測試文件刪除

對文件或目錄進(jìn)行rm命令操作,可以發(fā)現(xiàn)是已經(jīng)成功移動到回收站,定時任務(wù)會定時清理該目錄下的東西,延遲我們?nèi)粘m -rf 誤操作命令

四、擴展

  • 作為工程師,日常操作一定還是要小心
  • 使用云服務(wù)器,做好定時快照策略
  • 如果為傳統(tǒng)服務(wù)器做好文件異地備份
  • 安裝使用數(shù)據(jù)恢復(fù)軟件工具ext3grep、extundelete等第一時間恢復(fù)誤操作數(shù)據(jù)。

附:Linux中利用chattr命令防止文件被刪除

我們都知道,Linux是個很強大的系統(tǒng)。每個文件都有一定的權(quán)限,有的用戶可以處理,有的只有root用戶可以刪除。但人總會有失誤的時候,比如我們在root用戶里用命令“sudo rm -fr ‘文件夾名' ”,這會使得我們很沮喪。有時候,我們把一個重要的文件夾放在主文件夾里,有時一不小心,我們就會把它誤刪了。

哈哈,Linux里有一個十分有用的命令“chattr”, 它會很好的解決我們的問題。

1. 概述

linux中鍵入“man chattr”,其描述為“chattr changes the file attributes on a Linux file system.”從這我們很容易得出:在Linux文件系統(tǒng)里,chattr是可以改變文件的屬性。

2. 具體的語法格式

chattr [ -RVf ] [ -v version ] [ mode ] files...[1]

注:中括號是可選選項,而 files 表明其為參數(shù),必須要有。如果您加上版本號(-v),您必須 鍵入版本號。如:chattr -v 1.8 files

3. 重要選項詳細(xì)解釋

接下來我們分析,一些對我們有用的選項

  • -R 對于本條命令遞歸更改文件的屬性。(即文件夾和文件甚至文件夾里的子文件和子文件夾都附上相同的屬性)
  • -V 輸出詳細(xì)的信息,如果有版本號的話,并輸出版本號
  • -v 設(shè)置文件的版本號

4. 文件屬性

1)mode 選項

就是[1]中,[mode] 選項,而此選項格式為 “+文件屬性”或“-文件屬性”或“=文件屬性”

  • “+文件屬性” 就是添加該屬性
  • “-文件屬性”去掉此屬性
  • “=文件屬性” 此文件有且只有這屬性

2)文件屬性

  • a 文件是否只能添加,修改,而不能刪除
  • c 文件夾是否能添加壓縮文件
  • s 安全刪除
  • u 不可刪除

注:c,s,u不能在ext2,ext3,ext4文件系統(tǒng)

如果你的文件系統(tǒng)是其中之一,你就使用a屬性,可以避免你的文件被刪除。

如:sudo chattr -V +a file

解除鎖定:

sudo chattr -V -a file

五、總結(jié)

到此這篇關(guān)于Linux自定義防誤刪腳本的文章就介紹到這了,更多相關(guān)Linux自定義防誤刪腳本內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Shell腳本創(chuàng)建指定大小文件的測試數(shù)據(jù)

    Shell腳本創(chuàng)建指定大小文件的測試數(shù)據(jù)

    這篇文章主要介紹了Shell腳本創(chuàng)建指定大小文件的測試數(shù)據(jù),本文同時給出使用DD命令和Shell腳本解決這個需求,給出的腳本功能更加強大,需要的朋友可以參考下
    2015-03-03
  • Linux CLI操作常用快捷鍵總結(jié)

    Linux CLI操作常用快捷鍵總結(jié)

    下面小編就為大家?guī)硪黄狶inux CLI操作常用快捷鍵總結(jié)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • ftp自動上傳腳本分享

    ftp自動上傳腳本分享

    調(diào)試設(shè)備時,往往需要反復(fù)將新編譯的二進(jìn)制通過ftp上傳到目標(biāo)機的指定目錄下,此工作的重復(fù)性過多,考慮將操作寫為shell腳本
    2014-02-02
  • ubuntu下常用apt命令介紹

    ubuntu下常用apt命令介紹

    這篇文章介紹了ubuntu的常用apt命令,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • 在shell或者perl中改變字體或背景的顏色

    在shell或者perl中改變字體或背景的顏色

    有時候在運行別人寫的腳本的時候,在黑乎乎的終端下顯示了不同的顏色,好生的羨慕啊,今天就來分享一下,分別在shell和perl中怎么改變我們輸出的字體的顏色
    2014-04-04
  • Shell腳本實現(xiàn)memcache緩存命中率監(jiān)控

    Shell腳本實現(xiàn)memcache緩存命中率監(jiān)控

    這篇文章主要介紹了Shell腳本實現(xiàn)memcache緩存命中率監(jiān)控,這個腳本比較簡單,通過check_tcp腳本獲取memcached的stats信息,然后將該信息格式化成一個字符串,然后將get_hits比上cmd_gets就能得到緩存命中率,需要的朋友可以參考下
    2014-12-12
  • shell命令實現(xiàn)當(dāng)前目錄下多個文件合并為一個文件的方法

    shell命令實現(xiàn)當(dāng)前目錄下多個文件合并為一個文件的方法

    今天小編就為大家分享一篇關(guān)于shell命令實現(xiàn)當(dāng)前目錄下多個文件合并為一個文件的方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • 使用命令行將json數(shù)據(jù)導(dǎo)出到csv(一行命令搞定)

    使用命令行將json數(shù)據(jù)導(dǎo)出到csv(一行命令搞定)

    這篇文章主要為大家介紹了使用命令行將json數(shù)據(jù)導(dǎo)出到csv,一行命令搞定的方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • Linux修改主機名的命令詳解

    Linux修改主機名的命令詳解

    通常在購買的服務(wù)器或者一些新安裝的Linux系統(tǒng)主機名是一個隨機的字符串,但是如果說我們想標(biāo)識一下每臺主機的名稱,我們就可以修改一下主機名,所以本文給大家介紹了Linux修改主機名的命令,需要的朋友可以參考下
    2024-01-01
  • shell腳本免交互的實現(xiàn)

    shell腳本免交互的實現(xiàn)

    交互就是實現(xiàn)一個功能時,不需要連續(xù)從鍵盤輸入信息,通過腳本或命令自動完成一些動作,本文主要介紹了shell腳本免交互的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2024-02-02

最新評論