Использование сценария, который использует Duplicity + S3, за исключением больших файлов

1547
Jason

Я пытаюсь написать скрипт резервного копирования, который исключит файлы определенного размера.

Если я запускаю скрипт, двуличность выдает ошибку. Однако, если я копирую и вставляю ту же команду, сгенерированную скриптом, все работает ...

Вот сценарий

 #!/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"  # exclude files over 100MB exclude () { find /home/jason -size +100M \ | while read FILE; do  echo -n " --exclude " echo -n \'**$\' | 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 

Куда я иду не так ??

1

1 ответ на вопрос

1
Jason

Я решил проблему ..

 #!/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= 

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