Чтобы получить сегодняшнюю дату, используйте date +%F
:
command > ~/sqldump/$(date +%F).sql
Чтобы узнать больше о различных параметрах, которые вы можете использовать с форматированием даты +
, обратитесь к справочной странице даты.
Что касается ожидания, я предполагаю, что вы имеете в виду, что вы не хотите запускать команду на своем dev-сервере до тех пор, пока команды на вашем prod-сервере не будут выполнены. Лучше всего, чтобы dev-сервер запускал команду с использованием ssh (т.е. ssh user@host "mysqldump ... > ... && ln -s ...
).
Если вы не хотите этого делать, лучшее, что я могу придумать, - это использовать временный файл, чтобы создание файла дампа было атомарным:
mysqldump ... > ~/sqldump/tmp$$ && mv ~/sqldump/tmp$$ ~/sqldump/$(date +%F).sql
Тогда, если у вас есть запрос к серверу dev на дамп с сегодняшней даты, вы можете зацикливаться, пока scp не будет выполнен успешно:
while ! scp foo@domain.tld:~/sqldump/$(date +%F).sql ~/sqldump; do
# file not present yet, sleep 1 minute and try again
sleep 60
done
mysql -ufoo -pbar db < latest.sql