Проблема связана с этими двумя строками:
mv dump $BACKUP_NAME* $BACKUPS_DIR
tar -cvz -f $BACKUP_NAME.tar.gz $BACKUP_NAME
Обратите внимание, что вы перемещаете dump
и $BACKUP_NAME*
из текущего каталога с mv
в первой строке, а затем пытаетесь добавить $BACKUP_NAME*
из текущего каталога в архив во второй.
Я чувствую, что вместо этого вы могли бы использовать
mv dump "$BACKUP_NAME"* "$BACKUPS_DIR"
tar -cvz -f "$BACKUP_NAME.tar.gz" "$BACKUPS_DIR"
Это создает архив tar
каталога $BACKUPS_DIR
. Однако я не уверен, почему у вас $BACKUP_NAME*
в первой строке, поскольку я не вижу ничего, создающего файлы с таким именем... (но я мог что-то упустить ).
Кроме того, рассмотрите возможность цитирования расширений переменных, как я сделал выше, по всему сценарию. Это особенно важно, если вы используете имена файлов или каталогов, содержащие пробелы.
Я запустил grub-mkconfig -o /boot/grub/grub.cfg
с помощью Ansible, он создал такое же расширение.new.
Но когда я использовал grub-mkconfig > /boot/grub/grub.cfg
, он успешно запустился и создал grub.cfg
.
-o
может не совпадать с >
.
Глядя на исходный код после комментария @oldfred, обнаружил, что расширение .new
создается при наличии ошибки в файлах /etc/default/grub
или /etc/grub.d/*
. См. здесь:
if test "x${grub_cfg}" != "x" ; then
if ! ${grub_script_check} ${grub_cfg}.new; then
# TRANSLATORS: %s is replaced by filename
gettext_printf "Syntax errors are detected in generated GRUB config file.
Ensure that there are no errors in /etc/default/grub
and /etc/grub.d/* files or please file a bug report with
%s file attached." "${grub_cfg}.new" >&2
echo >&2
exit 1
else
# none of the children aborted with error, install the new grub.cfg
mv -f ${grub_cfg}.new ${grub_cfg}
fi
fi
Вместо этого вы можете использовать grub-mkconfig -o /boot/grub2/grub.cfg
.