Ubuntu下定時提交代碼到SVN伺服器的Shell指令碼分享_linux shell

來源:互聯網
上載者:User

有兩個用途,一是偷懶不用去提交代碼,二是在遠程伺服器上使用以作定期備份。

複製代碼 代碼如下:

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後都得等一段時間,伺服器才用上新代碼。
以人為本的工作環境就是讓人能偷懶就偷懶、讓做事能便捷就便捷。能保證不會多人同時修改而產生衝突的話,選擇第一種~~~

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.