У меня есть сценарий резервного копирования написано, что будет делать следующее в следующем порядке:Простой Баш скрипт работает асинхронно, когда запускается как хрон
- застегивать файлы через SSH на удаленный сервер резервного копирования
- дамп мой локальная база данных
- Передача моя локальная база данных через SSH Rsync на резервный сервер
Теперь, когда я запускаю этот скрипт из командной строки в RHEL он работает нормально-прекрасно.
BUT Когда я установил этот скрипт для запуска через cronjob, сценарий запускается, но из того, что я могу сказать, он каким-то образом запускает эти выше 3 команды одновременно. Из-за этого все делается не по порядку (моя локальная база данных завершена сбрасыванием и переносом до того, как задание zip # 1 на самом деле завершено).
Неужели кто-то сталкивается с таким странным сценарием? Как самое простое исправление, есть ли способ заставить скрипт работать синхронно? Может быть, добавить какую-то команду, чтобы дождаться завершения предыдущей строки, прежде чем двигаться дальше?
EDIT Я добавил примерную версию моего сценария резервного копирования. Кажется, что вторая строка моего скрипта работает в то же время, что и первая строка моего скрипта, поэтому, пока команда SSH была выпущена, она еще не завершилась до того, как мои триггеры второй строки и начнется SQL-дамп.
#!/bin/bash
THEDIR="sample"
THEDBNAME="mydatabase"
ssh -i /rsync/mirror-rsync-key [email protected] "tar zcvpf /$THEDIR/old-1.tar /$THEDIR/public_html/*"
mysqldump --opt -Q $THEDBNAME > mySampleDb
/usr/bin/rsync -avz --delete --exclude=**/stats --exclude=**/error -e "ssh -i /rsync/mirror-rsync-key" /$THEDIR/public_html/ [email protected]:/$THEDIR/public_html/
/usr/bin/rsync -avz --delete --exclude=**/stats --exclude=**/error -e "ssh -i /rsync/mirror-rsync-key" /$THEDIR/ [email protected]:/$THEDIR/
Выполняйте эти три строки сценария, каждый из которых имеет амперсанд, &? Можете ли вы включить точный сценарий в свой вопрос вместе с записью cron? –
Не могли бы вы поделиться своим сценарием. –
@ jwpat7 Я отредактировал сообщение, чтобы добавить свой пример сценария – Mark