linux shell命令之用小檔案覆蓋整個磁碟

來源:互聯網
上載者:User

      假設我們現在遇到這樣一個問題,公司的關鍵資料copy到測試伺服器上了,在直接將其刪除後,仍然擔心伺服器供應商可以將其恢複,即便是通過fdisk進行重新格式化,也仍然存在被恢複的風險,鑒於此,我們需要編寫一個指令碼,建立很多小檔案(5MB左右),之後不停在關鍵資料所在的磁碟中複製該檔案,以使Linux的inode無法再被重新恢複,為了達到這裡效果,我們需要先構造該檔案,如:

 代碼如下 複製代碼
      /> find . -name "*" > testfile
      /> ls -l testfile
      -rwxr-xr-x. 1 root root 5123678 Dec  9 11:46 testfile
      /> cat > test27.sh
      #!/bin/sh

      #1. 初始化計數器變數,其中max的值是根據當前需要填充的磁碟空間和testfile的大小計算出來的。
   

 代碼如下 複製代碼
   counter=0
      max=2000000
      remainder=0

      #2. 每次迭代counter變數都自增一,以保證每次產生不同的檔案。當該值大於最大值時退出。
      #3. 對計數器變數counter按1000模數,這樣可以在每產生1000個檔案時列印一次輸出,以便看到覆蓋的進度,輸出時間則便於預估還需要多少時間可以完成。
      #4. 建立單獨的、用於存放這些覆蓋檔案的目錄。
      #5. 產生臨時檔案,如果寫入失敗列印出提示資訊。
     

 代碼如下 複製代碼
while true
      do
          ((counter=counter+1))
          if [ #counter -ge $max ]; then
              break
          fi
          ((remainder=counter%1000))
          if [ $remainder -eq 0 ]; then
              echo -e "counter = $countert date = " $(date)
          fi
          mkdir -p /home/temp2
          cat < testfile > "/home/temp/myfiles.$counter"
          if [[ $? -ne 0 ]]; then
              echo "Failed to wrtie file."
              exit 1
          fi
      done
      echo "Done"
      CTRL+D
      /> ./test27.sh
      counter = 1000        Fri Dec  9 17:25:04 CST 2011
      counter = 2000        Fri Dec  9 17:25:24 CST 2011
      counter = 3000        Fri Dec  9 17:25:54 CST 2011


      ... ...
      與此同時,可以通過執行下面的命令監控磁碟空間的使用率。

 代碼如下 複製代碼
      /> watch -n 2 'df -h'
      Every 2.0s: df -h                                       Fri Dec  9 17:31:56 2011
   
      Filesystem            Size   Used Avail Use% Mounted on
      /dev/sda2             3.9G  2.3G  1.4G  63% /
      tmpfs                  504M  100K  504M   1% /dev/shm
      /dev/sda1              49M   36M   11M  77% /boot
      /dev/sda3              15G  172M   14G   2% /home

      我們也可以在執行的過程中通過pidstat命令監控指令碼進程的每秒讀寫塊數。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.