Команды SVN
1. Создать новый реп
svnadmin create /usr/local/www/svn/pxe-kiae |
Где /usr/local/www/svn/ - путь до корня репозитория SVN
2. Удалить каталоги по списку из файла
#ls | egrep -v 'shellbox11.infra.hostcomm.ru|puppet-std.infra.hostcomm.ru' | xargs svn del #for dir in `cat /home/skuleshov/dmnew.txt`;do svn ci ${dir} -m "e";done |
Где dmnew.txt — файл со списком удаляемых директорий
3. Хуки в SVN(svn hooks)
[root@svn /]# cd /usr/local/www/svn/pxe-std/hooks/ [root@svn /usr/local/www/svn/pxe-std/hooks]# cat post-commit #!/bin/sh
# post commit hook -- called for normal commits # # The mailer is put into the background in order to # leave the script faster # # You need to adjust the config path # and the path to svn-mailer if necessary.
CONFIG="/usr/local/etc/svn/mailer/mailer.conf" MAILER="/usr/local/bin/svn-mailer"
REPOS="$1" REV="$2"
"${MAILER}" --commit --config "${CONFIG}" --repository "${REPOS}" --revision "${REV}" --background
/usr/bin/ssh -i /usr/local/www/svn/.ssh/id_dsa -o \ UserKnownHostsFile=/usr/local/www/svn/.ssh/known_hosts Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. & |
Где на той стороне, т.е. на dhcp-std.infra.server.ru, в /root/.ssh/authorized_keys имеем:
#cat /root/.ssh/authorized_keys from="10.14.7.51",command="/usr/local/sbin/updatefromsvn;/usr/local/etc/rc.d/isc-dhcpd restart" ssh-dss tut_key Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. |
Т.е. когда hook пойдет, то после авторизации по ключу с сервера IP=10.14.7.51, запустится команда /usr/local/sbin/updatefromsvn;/usr/local/etc/rc.d/isc-dhcpd restart
updatefromsvn — это скрипт «svn up»
Пример скриптов:
# cat /usr/local/sbin/updatefromsvn #!/bin/sh
. /usr/local/etc/updatefromsvn.conf
for dir in `cat ${UPDATEDIRSFILE}` do /usr/local/bin/svn update -q --non-interactive --trust-server-cert --username ${SVNUSER} --password ${SVNPASS} ${dir} done |
# cat /usr/local/sbin/updatefromsvn #!/bin/sh
. /usr/local/etc/updatefromsvn.conf
for dir in `cat ${UPDATEDIRSFILE}` do /usr/local/bin/svn update -q --non-interactive --trust-server-cert --username ${SVNUSER} --password ${SVNPASS} ${dir} done [root@dhcp-std /home/storage/releases/cdrom-amd64/freebsd/8.3-amd64-2013-11-20/livefs/conf]# cat /usr/local/etc/updatefromsvn.conf
SVNUSER=user-svn
SVNPASS=password UPDATEDIRSFILE=/usr/local/etc/updatedirsfile.conf |
# cat /usr/local/etc/updatedirsfile.conf /usr/local/etc/dhcpd /home/storage/releases/cdrom-amd64/freebsd/8.3-amd64-2013-11-20/livefs/conf /home/storage/releases/cdrom-amd64/freebsd/8.3-amd64-2013-11-20/livefs/conf/base /home/storage/releases/cdrom-amd64/CentOS |
Всё, готово.
Обновлено 05.04.2016 08:56