Сценарий резервного копирования, который исключает большие файлы, используя Duplicity и Amazon S3
Я пытаюсь написать скрипт резервного копирования, который исключит файлы определенного размера.
Мой скрипт дает правильную команду, но при запуске внутри скрипта выдает ошибку. Однако, если та же команда запускается вручную, все работает...???
Вот сценарий, основанный на одном легко найти с Google
#!/bin/bash
# Export some ENV variables so you don't have to type anything
export AWS_ACCESS_KEY_ID="accesskey"
export AWS_SECRET_ACCESS_KEY="secretaccesskey"
export PASSPHRASE="password"
SOURCE=/home/
DEST=s3+http://s3bucket
GPG_KEY="7743E14E"
# exclude files over 100MB
exclude ()
{
find /home/jason -size +100M \
| while read FILE; do
echo -n " --exclude "
echo -n \'**${FILE##/*/}\' | sed 's/\ /\\ /g' #Replace whitespace with "\ "
done
}
echo "Using Command"
echo "duplicity --encrypt-key=$GPG_KEY --sign-key=$GPG_KEY `exclude` $SOURCE $DEST"
duplicity --encrypt-key=$GPG_KEY --sign-key=$GPG_KEY `exclude` $SOURCE $DEST
# Reset the ENV variables.
export AWS_ACCESS_KEY_ID=
export AWS_SECRET_ACCESS_KEY=
export PASSPHRASE=
Если запустить, я получаю ошибку;
Command line error: Expected 2 args, got 6
Enter 'duplicity --help' for help screen.
Любая помощь, которую вы могли бы предложить, будет принята с благодарностью.
1 ответ
Я решил проблему..
#!/bin/bash
# Export some ENV variables so you don't have to type anything
export AWS_ACCESS_KEY_ID="accesskey"
export AWS_SECRET_ACCESS_KEY="secretaccesskey"
export PASSPHRASE="password"
SOURCE=/home/
DEST=s3+http://s3bucket
GPG_KEY="gpgkey"
# Generate a filelist of excluded files over 100MB
find $SOURCE -size +100M > /tmp/filelist
duplicity --exclude-filelist /tmp/filelist --encrypt-key=$GPG_KEY --sign-key=$GPG_KEY $SOURCE $DEST
# Reset the ENV variables.
export AWS_ACCESS_KEY_ID=
export AWS_SECRET_ACCESS_KEY=
export PASSPHRASE=