# SVN鉤子腳本簡介
> 鉤子腳本的具體寫法就是操作系統中shell腳本程序的寫法,根據自己在svn所在的操作系統和shell程序進行相應的開發。
默認情況下,鉤子的子目錄中包含了各種版本庫鉤子模版
**查看鉤子文件夾列表**
~~~
$ ls -lh /var/www/svn/svndata/app/hooks/
總用量 36K
-rw-r--r--. 1 root root 2.0K 10月 14 09:01 post-commit.tmpl
-rw-r--r--. 1 root root 1.6K 10月 14 09:01 post-lock.tmpl
-rw-r--r--. 1 root root 2.3K 10月 14 09:01 post-revprop-change.tmpl
-rw-r--r--. 1 root root 1.6K 10月 14 09:01 post-unlock.tmpl
-rw-r--r--. 1 root root 3.4K 10月 14 09:01 pre-commit.tmpl
-rw-r--r--. 1 root root 2.4K 10月 14 09:01 pre-lock.tmpl
-rw-r--r--. 1 root root 2.8K 10月 14 09:01 pre-revprop-change.tmpl
-rw-r--r--. 1 root root 2.1K 10月 14 09:01 pre-unlock.tmpl
-rw-r--r--. 1 root root 2.8K 10月 14 09:01 start-commit.tmpl
~~~
>**svn的hooks模版功能介紹**
start-commit 提交前觸發事務
**pre-commit 提交完成前觸發事務**
**post-commit 提交完成時觸發事務**
pro-revprop-change 版本屬性修改前觸發事務
post-revprop-change 版本屬性修改后觸發事務
post-lock 對文件進行加鎖操作之后執行該腳本
## 實例
chmod 755 post-commit && vim post-commit
~~~
#!/bin/sh
# POST-COMMIT HOOK
REPOS="$1"
REV="$2"
#mailer.py commit "$REPOS" "$REV" /path/to/mailer.conf
export LANG=zh_CN.UTF-8
####### 導出到本地臨時文件夾,為同步到其他服務器做準備 #########
svn update /opt/svn_rsync/eduask --no-auth-cache --non-interactive --force --username=rsyncsvn --password=123456 >> /tmp/eduask_hooks.txt 2>&1
###### 導出到遠程其他服務器 #########
#export RSYNC_PASSWORD='gp_3001e3006ea'
##### 導出到 192.168.0.61 #######
#rsync -rvt --delete --progress --ignore-errors --exclude ".svn/" /opt/svn_messages_system_rsync/ backupgp@192.168.0.61::messages_demo
rsync -rvt --delete --progress --ignore-errors --exclude ".svn/" --exclude "/jt_eduask/Runtime/" --exclude "/laodao_eduask/Uploads/" /opt/svn_rsync/eduask/ /var/www/html/eduask/ >> /tmp/rsync_svn.txt 2>&1
chown apache:apache -R /var/www/html/eduask
~~~
- Linux的安裝
- Linux的軟件安裝管理
- Linux零碎的命令
- 了解ssh
- 系統調優及安全設置
- Linux系統中的硬鏈接和軟連接
- Linux文件和目錄的屬性及權限
- 命令總結
- 文件目錄管理命令
- cat
- cd
- cp
- ls
- mkdir
- mv
- rm
- touch
- vi
- 硬件檢測內核shell命令
- echo
- alias
- dd
- diff
- date
- grep(重要)
- head
- rpm
- sed(重要)
- tree
- unalias
- yum
- seq
- su
- less
- more
- tail
- awk(重要)
- pwd
- history
- whoami
- find(重要)
- which
- vimdiff
- sudo
- wget
- ln
- chmod
- chown
- vim常用技巧
- scp
- 工作場景應用總結
- 自動刪除n天前日志
- 刪除一個目錄下的所有文件但保留一個文件
- Linux軟件安裝
- php安裝(apache版本)
- vsftpd安裝
- git安裝
- python安裝
- LNMP安裝
- LAMP安裝I
- LAMP安裝II
- svn安裝
- svn在Linux下的命令操作
- svn鉤子簡介
- svn代碼上傳流程
- Crond介紹
- sersync應用指南
- 其他
- 小結一
- 系統調優重新整理tmp
- linux禁止root用戶直接登錄sshd并修改默認端口