簡體   English   中英

Linux 項目:bash 用於歸檔和刪除文件的腳本

[英]Linux project: bash script to archive and remove files

我已經設置了一個迷你項目來運行 bash 腳本來存檔和刪除早於“x”天數的文件。 該文件將歸檔在 /nfs/archive 目錄中,它們需要被壓縮 (TAR) 或刪除……例如,“/test.sh 15”將刪除超過 15 天的文件。 此外,我還需要在刪除文件之前輸入一些驗證檢查......

到目前為止我的代碼:

> #!/bin/bash 
> 
> #ProjectEssentials:
> 
> # TAR: allows you to back up files
> # cronjob: schedule taks 
> # command: find . -mtime +('x') -exec rm {} \; this will remove files older than 'x' number of days 
> 
> find /Users/alimohamed/downloads/nfs/CAMERA -type f -name '*.mov'
> -mtime +10 -exec mv {} /Users/limohamed/downloads/nfs/archive/ \;
> 
> # TAR: This will allow for the compression
> 
> tar -cvzf doc.tar.gz /Users/alimohamed/downloads/nfs/archive/
> 
> # Backup before removing files 'cp filename{,.bak}'?  find /Users/alimohamed/downloads/nfs/CAMERA -type f name '*.mov' -mtime +30
> -exec rm {} \; ~

任何幫助將不勝感激!

修改腳本以修復一些錯別字。 注意備份文件將有一個 YYYY-MM-DD,以允許多次備份(每天限制為一次備份)。使用 TOP 使腳本通用 - 適用於任何帳戶。

X=15      # Number of days

          # Move old files (>=X days) to archive, via work folder
TOP=~/downloads/nfs
mkdir -p "$TOP/work"
find $TOP/CAMERA -type f -name '*.mov' -mtime +"$X" -exec mv {} "$WORK/work" \;

       # Create daily backup (note YYYY-MM-DD in file name from work folder
tar -cvzf $TOP/archive/doc.$(date +%Y-%m-%d).tar.gz -C "$TOP/work" .

       # Remove all files that were backed-up, If needed
find "$TOP/work" -type f -name '*.mov' -exec rm {} \; ~

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM