1

Попытка настроить скрипт cronjob run tar на резервный сайт (без .git и папки установки) каждую ночь и загрузить архив с отметкой времени в Dropbox.

Мне тяжело, потому что архив создается вместе со всем, кажется, флаг исключения теперь почему-то не работает. Может быть, это персонаж Zsh избежал проблемы, не уверен, все еще учится. Пожалуйста помоги..

#!/bin/zsh

DATE=`date +%d-%m-%Y---%H-%M-%S`
FILE=backup-$DATE.tar.bz2
DROPBOX=/home/pentago/appz/bin/dropbox.py 
TARGET=/home/pentago/public_html/
DESTINATION=/home/pentago/Dropbox/Backups
EXCLUDED={setup,.git*}


tar -cpPf $FILE --exclude=$EXCLUDED $TARGET{*,.*}

2 ответа2

2

В вашем скрипте есть несколько проблем. Вам нужно добавить опцию j в tar для создания файлов bzip2. Я считаю, что команды exclude игнорируются, потому что вы явно добавляете все файлы в вашей цели в список файлов tar. Вам не нужен $TARGET/* просто подойдет $TARGET . Наконец, исключенный BLOB-объект, вероятно, расширяется в вашем текущем каталоге, а не в целевом каталоге.

Попробуйте что-то вроде этого:

#!/bin/zsh

DATE=`date +%d-%m-%Y---%H-%M-%S`
FILE=backup-$DATE.tar.bz2
DROPBOX=/home/pentago/appz/bin/dropbox.py 
TARGET=/home/pentago/public_html/
DESTINATION=/home/pentago/Dropbox/Backups



tar -cjpPf $FILE --exclude=setup --exclude=.git $TARGET
0

Вы действительно должны использовать git-архив для этого.

git archive -o $FILE HEAD

чтобы избежать включения setup вам нужно установить атрибут export-ignore для него. Смотрите man gitattributes и man git-archive (множество примеров). Обратите внимание, что это предполагает, что установка включена, в противном случае вам не нужно ничего делать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .