Linux项目:用于存档和删除文件的bash脚本

问题描述 投票:0回答:1

我已经被设置为一个迷你项目,可以运行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 {} \; ~

任何帮助将不胜感激!

linux bash file cron tar
1个回答
0
投票

已修改的脚本,可修复少量拼写错误。注意备份文件的格式为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
find "$TOP/archive" -type f -name '*.mov' -exec rm {} \; ~
© www.soinside.com 2019 - 2024. All rights reserved.