2013-08-12 4 views
2

Когда я развертываю на своем dev-сервере, я использую rsync. Но после того, как Rsync мне нужно выполнить .sh файл для «после» развертывания операции, как очистить кэш ...Как выполнить скрипт bash после rsync

Обычно я делаю это через SSH, но если я раскрываю очень часто это скучные записи:

  • SSH ...
  • пароль записи
  • кд/вар/WWW/MyApp/веб
  • ./after_deploy.sh

Существует способ сделать это быстро? Это мой rsync.sh:

#!/bin/bash 
host="" 
directory="/var/www/myapp/web" 
password="" 
usage(){ 
     echo "Cant do rsync"; 
     echo "Using:"; 
     echo " $0 direct"; 
     echo "Or:"; 
     echo " $0 dry"; 
} 
echo "Host: $host"; 
echo "Directory: $directory" 
if [ $# -eq 1 ]; then 
     if [ "$1" == "dry" ]; then 
       echo "DRY-RUN mode"; 
       rsync -CvzrltD --force --delete --exclude-from="app/config/rsync_exclude.txt" -e "sshpass -p '$password' ssh -p22" ./ $host:$directory --dry-run 
     elif [ "$1" == "direct" ]; then 
       echo "Normal mode"; 
       rsync -CvzrltD --force --delete --exclude-from="app/config/rsync_exclude.txt" -e "sshpass -p '$password' ssh -p22" ./ $host:$directory 
     else 
       usage; 
     fi; 
else 
     usage; 
fi 
+0

скорлупа должна быть выполнена в системе хоста или удаленно? –

+0

Должно быть выполнено дистанционно – Diego

ответ

1

Вы можете добавить команду после команды ssh выполнить его вместо запуска оболочки.

Добавить следующее после команды Rsync:

сценарий
sshpass -p "$password" ssh $host "cd $dir && ./after_deploy.sh" 
+0

Можете ли вы помочь мне заменить лучшую линию моей? Я не могу заменить его без ошибок ... Я думаю, что котировки ошибок. – Diego

+0

Какая ошибка? – paul

+0

Хорошо, решила, это была моя ошибка. Благодарю. – Diego

Смежные вопросы