Я пишу сценарий оболочки, который пытается сделать резервную копию.
Моя цель
- Команда в сценарии создания файла резервной копии, этот файл резервной копии мне нужно скопировать на мой FTP-сервер.
Здесь проблема,
В вышеупомянутом пункте 1 команда все еще занята созданием файла резервной копии. Но мой скрипт выполняет следующие команды, которые он копирует старый файл резервной копии на мой FTP-сервер.
Я хочу, чтобы мой сценарий дождался окончания выполнения команды в пункте 1.
Я гуглил и нашел одно решение, но оно не работает в моем случае.
Гугл-решение выглядит следующим образом:
echo "request system recovery backup include-package-dir false" \
| /opt/vnms/ncs/current/bin/ncs_cli && OUTPUT="$(ls /var/ABCD/backups | tail -n 1)"
В приведенном выше решении я думал, что пока запрос резервного копирования для восстановления системы не завершит свою работу, следующая инструкция (т.е.) OUTPUT="$(ls /var/ABCD/backups | tail -n 1)"
не будет выполняться.
Но это не работает, как я думал.
У меня нет проблемы, когда include-package-dir
имеет значение false
. Потому что файл резервной копии составляет 200 МБ.
Но когда это true
резервный файл похож на 7 ГБ и требует времени для создания. Поэтому, прежде чем файл резервной копии будет готов, скрипт продолжит работу и выполнит OUTPUT ..... и внесет в него старое имя файла резервной копии и скопирует его на FTP-сервер. Я хочу, чтобы скрипт ждал, пока файл резервной копии не будет полностью готов.