Centos實現回收站機制

来源:http://www.cnblogs.com/dengtr/archive/2016/01/22/5151949.html
-Advertisement-
Play Games

linux回收站機制


  作為一個運維人員,在伺服器上刪除文件時為了方便經常會直接使用rm *.txt這類通配符,甚至為了省事加-rf參數,如果是確定的話還好,要是在刪除的時候一個不留神,那事可就大了。

  俗話說常在河邊站哪有不濕鞋,沒人能保證自己就能一次失誤都不犯,但天天提心吊膽的整成個強迫症也不是事,所以就想到了在linux伺服器上也整一個類似win的回收站功能。

  以下是本人實現回收站的腳本,在啟用回收站後如果需要刪除文件,只需執行"del 文件名/文件夾名稱"即可

1 [root@localhost tools]# tree Trash_1.0/
2 Trash_1.0/
3 ├── install_Trash.sh
4 └── Trash_mkdir.sh

 

  很簡單,就兩個腳本文件,Trash_mkdir.sh是寫到crontab定時任務里的內容,負責每天生成對應日期的回收站文件夾,並定期清理回收站內超過5天的文件,也就是說回收站能保留你五天內刪除的文件,install_Trash.sh腳本負責自動配置定時任務、載入用戶個性化配置等。

  Trash_mkdir.sh的內容:

 1 [root@localhost Trash_1.0]# cat Trash_mkdir.sh 
 2 #!/bin/bash
 3 month=`date "+%m"`              #獲取當前月份
 4 day=`date "+%d"`               #獲取當前日期 
 5 
 6 last_day=`date -d "-1 day" "+%d"`      #獲取前天月份
 7 last_day_m=`date -d "-1 day" "+%m"`       #獲取前天日期
 8 
 9 del_day=`date -d "-5 day" "+%d"`      #獲取五天前月份
10 del_day_m=`date -d "-5 day" "+%m"`      #獲取五天前日期
11 
12 Trash_dir="/tmp/del_bak"          #回收站總目錄
13 tmp_dir="/tmp/del_bak/tmp"          #每天刪除文件存放目錄
14 #下麵是創建相應目錄,並賦予777許可權15 if [ ! -d $Trash_dir ]
16 then
17     /bin/mkdir -p $Trash_dir
18     /bin/chmod 777 $Trash_dir
19 fi
20 
21 if [ ! -d $tmp_dir ]
22 then
23     /bin/mkdir -p $tmp_dir
24     /bin/chmod 777 $tmp_dir
25 fi
26 
27 if [ ! -d /tmp/del_bak/$month ]
28 then
29     /bin/mkdir /tmp/del_bak/$month
30     /bin/chmod 777 /tmp/del_bak/$month
31 fi
32 
33 if [ ! -d /tmp/del_bak/$month/$day ]
34 then
35     /bin/mkdir /tmp/del_bak/$month/$day
36     /bin/chmod 777 /tmp/del_bak/$month/$day
37 fi
38 
39 Trash_file=`/bin/ls -A $tmp_dir`
40 
41 if [ "$Trash_file" != "" ]            #這是定時在每天凌晨將昨天刪除的文件放到已月份和日期分類的目錄下,保證/tmp/del_bak/tmp目錄下只存放當天刪除的文件
42 then
43     cd $tmp_dir
44     if [ ! -d /tmp/del_bak/$last_day_m/$last_day/ ]
45     then
46        /bin/mkdir -p /tmp/del_bak/$last_day_m/$last_day/
47     fi
48     /bin/mv $tmp_dir/* /tmp/del_bak/$last_day_m/$last_day/
49 fi
50 
51 if [ -d $Trash_dir/$del_day_m/$del_day/ ]        #清理五天前刪除的文件
52 then
53     cd $Trash_dir/$del_day_m/$del_day/ && {
54     /bin/rm -rf $Trash_dir/$del_day_m/$del_day/
55     }
56 fi

 

  install_Trash.sh腳本內容:

 1 [root@localhost Trash_1.0]# cat install_Trash.sh 
 2 #!/bin/bash
 3 USER=`/usr/bin/whoami`                          #獲取當前用戶
 4 TOOLS="/usr/local/tools"                          #存放Trash_mkdir.sh定時任務腳本的路徑,可根據個人自行修改
 5 HOME_DIR=`/bin/grep "$USER" /etc/passwd|awk -F ":" '{print $6}'`  #獲取當前用戶家目錄
 6 CONF=$HOME_DIR"/.bashrc"                          #拼接當前用戶的配置文件路徑
 7 Trash=`/bin/grep "del" $CONF`                      #判斷是否已經配置了回收站機制
 8 
 9 if [ "$Trash" = "" ]                            #添加回收站別名del
10 then
11     echo "alias del='mv -t /tmp/del_bak/tmp/ --backup=t'" >>$CONF
12 fi
13 
14 if [ ! -d $TOOLS ]
15 then
16     /bin/mkdir -p $TOOLS
17 fi
18 
19 /bin/cp Trash_mkdir.sh $TOOLS                      #拷貝定時任務腳本到指定目錄
20 /bin/chmod +x $TOOLS/Trash_mkdir.sh
21 
22 if [ -z "`grep 'Trash_mkdir.sh' /var/spool/cron/root`" ]      #判斷定時任務crontab里是否已經加了回收站腳本
23 then
24     echo "10 0 * * * $TOOLS/Trash_mkdir.sh" >>/var/spool/cron/root
25 fi
26 
27 /bin/sh $TOOLS/Trash_mkdir.sh                      #初始化回收站

 

部署說明:

1、將兩個腳本放在同一目錄下

2、使用需要啟用回收站功能的用戶去執行install_Trash.sh腳本即可一鍵安裝

以上就是本人在Centos6.5伺服器上實現的回收站機制,有興趣的朋友可以一起討論改進。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 近期為了分析國內航空旅游業常見安全漏洞,想到了用大數據來分析,其實數據也不大,只是生產項目沒有使用Hadoop,因此這裡實際使用一次。先看一下通過hadoop分析後的結果吧,最終通過hadoop分析國內典型航空旅游業廠商的常見安全漏洞個數的比例效果如下:第一次正式使用Hadoop,肯定會遇到非常多的...
  • 常用操作: 整型類型操作: 1、相加__add__(),比如我有兩個變數a=19,b=20,那麼我想通過a調用此函數來與b相加,可以這樣做1 >>> a=192 >>> b=203 >>> c=-194 >>> d=a.__add__(b)5 >>> print d6 39也可以直接相加1 >>>....
  • 1. 安裝環境 linux版本:CentOSrelease6.2(Final) pg版本 :postgresql-9.5.02. pg資料庫下載地址--http://www.postgresql.org/ftp/source/3. 安裝依賴包>yum installgcc*>yum insta...
  • 前言今天在在清理資料庫,是MS SQL Server,其中用到分離資料庫文件。在這過程中,出現了一個小小的問題:誤將資料庫日誌文件刪除了,然後數據就打不開了,除了離線,其他操作都報錯。資料庫分離常規方法此方法是常規慣用的方式,多步驟。如圖所示:粗暴方法此方法簡單粗暴,非常實用,一條SQL語句就搞定了...
  • 一直想在 Linux 上使用 MONO 試試運行 Rafy,最近因為業務需要,總算是真正地試驗了一次。下麵是本次部署記錄的一些要點。 Linux 這次部署,我是和兩位同事一起來試驗的。由於我們對 Linux 都不太熟悉(多年前曾經用過很少一段時間的 RedHat,那些命令現在也早已忘記了,哈。),所...
  • 本文由ilanniweb提供友情贊助,首發於爛泥行天下想要獲得更多的文章,可以關註我的微信ilanniweb公司的業務是使用tomcat做web容器,為了更有效的利用伺服器的性能,我們一般部署多個tomcat做業務的負載均衡。一、業務需求目前一臺伺服器上,部署了4個tomcat,也就相當於4個節點。...
  • 上一篇,運用 Linux 的 sysfs,控制本機上的 LED 燈,usr0 至 usr3,這次用 GPIO 控制外部的電路,點亮 LED 燈。 這次的全部材料: BBB 一臺 購買 BBB 自帶的 USB 數據線 麵包板一塊 470Ω 三枚(至少一枚) 白、紅、黃、綠 LED 燈各一個(至少一個)...
  • 一.概述 barrier(屏障)與互斥量,讀寫鎖,自旋鎖不同,它不是用來保護臨界區的。相反,它跟條件變數一樣,是用來協同多線程一起工作!!!條件變數是多線程間傳遞狀態的改變來達到協同工作的效果。屏障是多線程各自做自己的工作,如果某一線程完成了工作,就等...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...