Сценарий Bash для автоматического резервного копирования tar выбранных файлов и каталогов

Я искал довольно долго, но я нашел одно решение здесь для этого SuperUser Q&A под названием: Как мне отделить процесс от терминала, полностью? , после того, как я написал свой вопрос здесь.

| at now

1
14.05.2014, 14:32
3 ответа

Причиной ошибки является наличие пробелов или других специальных символов в именах файлов под ./img.

Вместо опции -print для find используйте -print0 и соответствующую опцию -0 для `xargs':

 find ./img ! -path ./img -mtime -7 -print0 | xargs -0 tar uvf `date --rfc-3339=date`-package.tar
1
27.01.2020, 23:52
  • Вместо find ./foo ! -path ./foo вы можете использовать find -mindepth 1 ./foo. Это гарантирует, что будут выведены только файлы внутри указанных путей.
  • Если у вас есть GNU tar, вы можете использовать --exclude=PATTERN. Таким образом, вы сможете написать что-то вроде этого:

    today="$(date --rfc-3339="date")"
    last_week="$(date --rfc-3339="date" --date="-7 days")"
    tar --no-recursion --exclude=db_connection.php --after-date="$last_week" cvf "${today}-package.tar" .
    tar --after-date="$last_week" uvf "${today}-package.tar" ./require ./img ./plugin
    
0
27.01.2020, 23:52

Я пишу это на лету, попробуйте, если он работает, что-то около

tar cvf   --no-recursion --after-date $yourdate $TarFile * */* 
tar uvrf  --after-date $yourdate $TarFile ./require ./plugin ./img
0
27.01.2020, 23:52

Теги

Похожие вопросы