Я пишу сценарий для архивации каталога, а затем загружаю архив в S3. Каталог назван по дате, месяц-год. Вот моя попытка:
TARNAME=`date --date="$(date +%Y-%m-15) -1 months" +' %B-%Y'`
tar cvfz /tmp/$TARNAME.tar.gz /Drive_E/drive_i_bu/monthly/$TARNAME
/usr/local/bin/aws s3 mv /tmp/$TARNAME.tar.gz s3://test-roger/
Вышеупомянутое работает, если я не выполняю замену переменной. С переменной я получаю: tar: July-2016.tar.gz: Cannot stattar (child): /tmp/: Cannot open: Is a directory
Вдобавок tar пытается глубже погрузиться в каталог. Любые идеи? Опять же, вышеуказанное работает без подстановки переменных. Итак, проблема не в инструменте AWS CLI.
В ваш $TARNAME
(увидеть ниже). Это вызывает /tmp/
и July-2016.tar.gz
обрабатываться tar как отдельные аргументы
echo /tmp/$TARNAME.tar.gz
/tmp/ July-2016.tar.gz
Если вы избавитесь от этого, все должно работать так, как вы ожидаете. Похоже, это вызвано пробелом в
' %B-%Y'
Обратите внимание на пробелы:
tar cvfz /tmp/"${TARNAME}".tar.gz /Drive_E/drive_i_bu/monthly/"${TARNAME}"
/usr/local/bin/aws s3 mv /tmp/"${TARNAME}.tar.gz" s3://test-roger/