1. 程式人生 > >svn利用hooks自動更新遠端伺服器上的專案

svn利用hooks自動更新遠端伺服器上的專案

專案開發階段往往需要頻繁的提交程式碼,如果不加svn鉤子的話,每次提交都要到專案目錄下執行一下svn up,非常費事,所以今天決定加個把鉤子做上。利用鉤子更新遠端專案的關鍵是實現ssh無密碼登入。

svn倉庫所在伺服器(以下簡稱機器A) :6.111

專案所在伺服器(以下簡稱機器B):6.28

一、首先我們實現ssh無密碼登入(A->B)

1.在A機器上生成祕鑰對

[[email protected] ~]# ssh-keygen -t rsa
一路ENTER下去,祕鑰對就可以成功生成啦。生成完的祕鑰對儲存/root/.ssh目錄中(因為我是root使用者)
[[email protected]
.ssh]# pwd /root/.ssh [[email protected] .ssh]# ls id_rsa id_rsa.pub

2.將id_rsa.pub複製為authorized_keys,並將authorized_keys檔案上傳到B機器的
[[email protected] .ssh]# cp id_rsa.pub authorized_keys
[[email protected] .ssh]# scp authorized_keys [email protected]:/root/.ssh

3.ssh登入B機器,第一次需要輸入密碼,以後就不在需要了,至此,無密碼登入就已經實現了

二、在B機器上建立更新svn的指令碼

1.建立指令碼檔案/shell/svnup.sh

[[email protected] shell]# vim svnup.sh
#!/bin/bash

/usr/bin/svn update /var/www/projcet #projcet為專案檔案
[[email protected] shell]# chmod 755 svnup.sh

三、建立鉤子

svn倉庫建立完後會有一個hooks資料夾,該資料夾下面已經自帶了一些鉤子檔案,我們要用到的是post-commit

1.將post-commit.tmpl複製為post-commit

[[email protected]
hooks]# cp post-commit.tmpl post-commit
2.註釋掉post-commit裡面的所有內容,並新增我們的更新命令
/usr/bin/ssh -l root 192.168.6.28 "/bin/bash /shell/svnup.sh"

四、總結

實現過程中有幾個需要注意的地方,1..ssh目錄和authorize_keys檔案的許可權,.ssh目錄的許可權是700,authorize_keys的許可權應該為644.

2.post-commit檔案和svnup.sh檔案的許可權,至少為755


相關推薦

svn利用hooks自動更新遠端伺服器專案

專案開發階段往往需要頻繁的提交程式碼,如果不加svn鉤子的話,每次提交都要到專案目錄下執行一下svn up,非常費事,所以今天決定加個把鉤子做上。利用鉤子更新遠端專案的關鍵是實現ssh無密碼登入。 svn倉庫所在伺服器(以下簡稱機器A) :6.111 專案所在伺服器(以下

svn提交後利用hooks自動更新web服務器

whoami 報錯 roo 出版 自動 scp upd 版本庫 ech #!/bin/shREPOS=”$1″#版本庫REV=”$2″#版本號#export LC_ALL=C#export LANG=zh_CN.UTF-8export LANG=en_US.UTF-8#字符

Jenkins自動構建部署專案遠端伺服器

1.下載jenkins    啟動jenkins方式有2種1.1切換到jenkins.war包的存放目錄     啟動命令: java -jar  jenkins.war 啟動jenkins       訪問: localhost:8080 就能進入jenkins管理頁面1.

java利用jcraft實現和遠端伺服器互動,實現傳下載檔案

git地址:https://github.com/fusugongzi/upLoadAndDownloadFile 第一步:引入maven支援,新增maven依賴 <!-- https://mvnrepository.com/artifact/com.jcraft

怎麼用ssh開啟遠端伺服器的teamviewer (shit!弄這玩意花了我大半天時間)

必須記錄一下在我裝軟體道路上的其中一個絆腳石,狗血經歷,開學一個月了,裝軟體裝的我懷疑人生,我的研究生生活難道要就此止步於裝軟體了?。。。想起剛開始裝docker,接著又是SimpleElastix ,現在又卡在裝Matlab ,每個都得花我好幾天時間,我遇到的錯誤也是奇葩,各種找不到解決辦

[Xcode10 實際操作]八、網路與多執行緒-(17)使用網址會話物件URLSession向遠端伺服器傳圖片

本文將演示如何通過網址會話物件URLSession向遠端伺服器上傳圖片。 網址會話物件URLSession具有在後臺上傳和下載、暫停和恢復網路操作、豐富的代理模式等優點。 在專案導航區,開啟檢視控制器的程式碼檔案【ViewController.swift】 1 import UIKit 2

遠端伺服器下載圖片程式碼

  //urlList是遠端圖片地址,path是圖片下載後將要存放的地址 private static void downloadPicture(String urlList,String path) { URL url = null; try { url = new URL(urlList);

本機nvcat無法連遠端伺服器的mysql

1.使用ssh工具登陸上mysql伺服器 mysql -u root -p 123456 use mysql 2.授權所有主機都可以使用某個使用者登陸到伺服器 ,記得flush privileges 才會生效,然後推出 GRANT ALL PRIVILEGES O

Web專案通過Servlet編寫一個介面,部署在遠端伺服器,供他人呼叫

在我的上一片文章中,我在本地新建了一個普通的類來編寫WebService,使用終端類 Endpoint 釋出這個WebService,以此來實現讓其他類呼叫這個介面,實現介面中定義的功能。 那麼如果是Web專案的話,應該怎麼編寫併發布WebService呢?

易語言如何連線遠端伺服器的資料庫,並讀取資料

用易語言來連線遠端伺服器上的資料庫,可以使用支援庫中的方法。 連線資料庫方法名: 連線mysql(伺服器地址,使用者名稱,密碼,資料庫名,埠號) 注意:連線mysql()這個方法名,如果沒有,單擊工具欄中的 工具--->支援庫配置  然後全選,確定匯入。這時有這個

windows SVN提交後自動更新鉤子

post-commit.cmd @echo off SET REPOS=%1 SET USER=%2 SET SVN="D:\Program Files (x86)\VisualSVN Server\bin\svn.exe" SET DIR="D:\AppServ\www\airasia-t

git在遠端伺服器建立專案並將原生代碼推送到伺服器

1.進入到遠端伺服器 ssh name (name:遠端伺服器地址) 2.進入以後新建一個空的倉庫 git init --bare name (name:倉庫的名稱) 3.退出遠端伺服器 exit 4.到需要提交的檔案的目錄裡面(命令:cd) 5.在需要提交的檔

遠端伺服器備份/恢復資料庫(Oracle資料庫)

備份用exp命令: exp 使用者名稱/密碼@遠端伺服器ip:埠號/使用者名稱 file=儲存的路徑 其中使用者名稱是在遠端伺服器中你要備份的庫的使用者名稱 案列:exp fund02/[email protected]遠端伺服器ip(略):1523/

怎麼用ssh開啟遠端伺服器的teamviewer (shit!弄這玩意花了我大半天時間)

必須記錄一下在我裝軟體道路上的其中一個絆腳石,狗血經歷,開學一個月了,裝軟體裝的我懷疑人生,我的研究生生活難道要就此止步於裝軟體了?。。。想起剛開始裝docker,接著又是SimpleElastix ,現在又卡在裝Matlab ,每個都得花我好幾天時間,我遇到的

遠端伺服器換包(MobaXterm)

tail -40f /var/log/ofclacct/otp-ofclacct-web.log systemctl start otp-ofclacct-web systemctl stop otp-ofclacct-web 工具:MobaXterm軟體

利用 apache2 在多個伺服器部署多個專案實踐

一、背景 應專案需求,要在兩個遠端伺服器上利用 apache2 部署多個專案(前後端分離): Server (Nodejs/Koa2) Android APP、Apple APP (ionic3) 現將部署過程及遇到的問題記錄下來。 二、伺服器配置說明

解決“在連線linux遠端伺服器的mysql資料庫時,報“Access denied for user 'root'@'ip地址'”問題”

在連線linux遠端伺服器上的mysql資料庫時,報“Access denied for user 'root'@'ip地址'”問題:1.mysql -u -root -p  輸入密碼2.mysql>grant all privileges on *.* to 'roo

java專案部署到遠端伺服器

一、前言 前面我們已經嘗過了在雲伺服器上部署程式碼的甜頭了,現在主菜就要上場了,那就是將我們的 JavaWeb 專案部署到雲伺服器上。興奮吧?淡定淡定~ 二、專案部署 我們對於 Java Web 專案在本地機器(無論是 Windows 還是 Linux)上的部

SVN 批處理自動更新和提交指定資料夾內容

在開發中每天可能都要去去更新新的文案 美術等資源,這裡我們就分享一下如何批處理更新指定檔案的內容 一、更新指定檔案內容 新建一個bat檔案 更新bat檔案所在資料夾的資源: TortoiseProc.exe /command:update /path:".\" /closeone

如何使用 PyCharm 將程式碼傳到遠端伺服器(詳細圖解)

說明:該篇部落格是博主一字一碼編寫的,實屬不易,請尊重原創,謝謝大家! 一丶測試說明 1.通過Windows電腦上的PyCharm,將程式碼上傳到虛擬機器Ubuntu系統中 需要在虛擬機器中安裝Ubuntu的朋友可以閱讀這篇部落格:https://blog.csdn.net/qq_4