您好,登錄后才能下訂單哦!
本篇內容主要講解“如何實現在Ubuntu下定時提交代碼到SVN服務器的Shell腳本”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何實現在Ubuntu下定時提交代碼到SVN服務器的Shell腳本”吧!
有兩個用途,一是偷懶不用去提交代碼,二是在遠程服務器上使用以作定期備份。
代碼如下:
sudo gedit /etc/crontab
打開后加入這行
代碼如下:
0 * * * * my_user_name my_script_path
表示每個整點以my_user_name身份執行my_script_path。這里最好是使用當前的用戶名,修改掉默認的root,否則可能以root身份會提交失敗。詳情請詢問百度crontab的用法。
然后script的內容為:
代碼如下:
#!/bin/bash
cd $my_code_path
# 添加所有新文件
svn st | grep "? \+" | sed "s/? \+//" | xargs svn add
# 刪除所有本地缺失的文件
svn st | grep "! \+" | sed "s/! \+//" | xargs svn delete
# 提交
svn ci -m 'auto commit by script'
也可以不修改/etc/crontab,而是把腳本 復制 或 軟鏈接 到 /etc/cron.hourly/ 下,腳本應用su切換用戶,改成:
代碼如下:
#!/bin/bash
su - your_user_name <<EOF
cd $my_code_path
# 添加所有新文件
svn st | grep "? \+" | sed "s/? \+//" | xargs svn add
# 刪除所有本地缺失的文件
svn st | grep "! \+" | sed "s/! \+//" | xargs svn delete
# 提交
svn ci -m 'auto commit by script'
EOF
也可以不修改/etc/crontab,而是把腳本 復制 或 軟鏈接 到 /etc/cron.hourly/ 下,腳本應用su切換用戶,改成
代碼如下:
#!/bin/bash
su - your_user_name <<EOF
cd $my_code_path
# 添加所有新文件
svn st | grep "? \+" | sed "s/? \+//" | xargs svn add
# 刪除所有本地缺失的文件
svn st | grep "! \+" | sed "s/! \+//" | xargs svn delete
# 提交
svn ci -m 'auto commit by script'
EOF
默認是每個小時的第17分鐘執行。類似的,還有weekly、monthly、daily 文件夾。
關于定時備份服務器上的網頁文件,會有兩種意見,其優劣如下:
1.腳本定時commit(每個整點):開發人員可以隨時修改服務器上的文件并立刻生效,不用關心備份工作。
2.腳本定時update(每隔30秒):可防止文件多人同時修改的沖突;需要本地搭建服務器環境,調試ok后才上傳,否則commit后都得等一段時間,服務器才用上新代碼。
到此,相信大家對“如何實現在Ubuntu下定時提交代碼到SVN服務器的Shell腳本”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。