Проект Linux: bash скрипт для архивации и удаления файлов - PullRequest
0 голосов
/ 28 октября 2019

Мне настроен мини-проект для запуска 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 {} \; ~

Любая помощь будет высоко ценится !!

1 Ответ

0 голосов
/ 28 октября 2019

Модифицированный скрипт для исправления нескольких опечаток. Примечание. Файл резервной копии будет иметь 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 {} \; ~
...