Powered by CodeIgniter

Советы и решения

(55)
10
10 голосов
Решаем проблемы вместе и передаем друг другу полезные знания.
Представляю вашему вниманию скрипт автоматического обновления из svn для *nix-like систем.
(Впрочем, если вам не лень компилить под винду bash, rsync, svn и некоторые другие стандартные утилиты, то будет работать и под виндой)
Требования:
  • bash
  • svn
  • rsync
  • право выполнения (+x)
  • право на запись в каталог движка ;-)
Итак, теперь сам скрипт:
#!/usr/local/bin/bash ######################## # cogear_update.sh # ######################## temp=/tmp/cogear output=/usr/home/cogear/public_html log=/usr/home/cogear/logs/update.log mkdir -p $temp echo 'Start update at' `date`>>$log echo 'Start update at' `date` cd $temp/ svn export 'http://subversion.assembla.com/svn/cogear/trunk/'|grep 'Exported revision'>>$log echo 'Svn export at' `date`>>$log echo 'Svn export at' `date` cd ./cogear/ rsync -vRrut ./* $output/ >>$log echo 'Rsync at' `date`>>$log echo 'Rsync at' `date` cd $output/ chmod -R 0777 ./engine/cache chmod -R 0777 ./uploads chmod 0777 `find ./* -name '*.info'` rm -rf $temp echo 'End update at' `date`>>$log echo 'End update at' `date`
ВНИМАНИЕ!:
Чтобы скрипт заработал на OC отличной от freebsd, замените
#!/usr/local/bin/bash на полный путь к вашему bash
Кроме того:
Чтобы все отработало нормально через cron, не забудьте добавить в $path пути к исполняемым файлам (у меня это: /sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin )
Как обычно, жду ваших комментариев.
04:24 ← 10 февраля 2010 Отправить в Твиттер sudersuder  RSS comments 10

Комментарии (10) ↓

admin admin time 22:57 ← 10 февраля 2010 #
Отлично! Очень полезная инструкция. Спасибо.
Автор
suder suder time 00:41 ← 11 февраля 2010 #
Всегда пожалуйста.
Кстати, я когда-то предлагал идею, добавлять в patch.sql первой строкой комментарий с датой и потом именно по этой строке обрабатывать необходимость патчинга (где-нибудь в движке хранить текущую ревизию). Как эта идея, прижилась, не?
admin admin time 00:50 ← 11 февраля 2010 #
Пока не думал над этим. Скоро у нас будет форум ;-) и там мы это обсудим. Если хочешь — сделай и закоммить.
Softovick Softovick time 19:39 ← 10 марта 2010 #
Зачем форум, если можно и щас уже в конфе обсудить? :)
Vasily Vasily time 23:24 ← 20 февраля 2010 #
Спасибо, воспользовался :)
Vasily Vasily time 16:48 ← 10 марта 2010 #
svn: URL 'http://subversion.assembla.com/svn/cogear/cogear' doesn't exist
Автор
suder suder time 18:18 ← 10 марта 2010 #
Приношу свои извинения — сейчас исправлю эту проблему.
Softovick Softovick time 19:40 ← 10 марта 2010 #
Кстати, будьте аккуратны с папкой .svn — взломать могут! :)
Автор
suder suder time 19:41 ← 10 марта 2010 #
При использовании команды svn export (в отлиичии от svn co) папки .svn или _svn не создаются.
IceDragon IceDragon time 16:47 ← 14 мая 2010 #
на самом деле рекомендую рабочий сайт не алдейтить — а апдейтить только тестовый движок — потому как это обычное явление что изменения могу быть не доконца рабочими, и их плодами могут воспользоваться злоумышленники.