用Shell寫的遊戲客戶端更新指令碼

2021-08-26 17:37:20 字數 2232 閱讀 6374

之前我們更新客戶端的方法是,乙個指令碼,把svn的客戶端版本檢出來。但是每次都重複檢出。

由於現在客戶端已經有800+m,每次檢出基本都需要等待5分鐘左右。因此應測試要求,寫了個指令碼,

每次只檢出更新部分。其實只是利用了svn的update命令。

指令碼實現功能:

1、如果首次使用該指令碼,在制定目錄中建立乙個用於儲存版本的檔案。然後檢出專案。

2、如果不是首次使用,那麼更新步驟1檢出的專案。然後修改步驟1的版本號(遞增),將版本號寫入載入flash的jsp配置中。

其中還涉及一些對額外情況的處理,比如如果檢出的目標位置已經存在同名檔案,那麼打包備份這個檔案,然後再繼續執行正常操作等細微邏輯。

剛看shell不久,也只是利用零散時間看的。寫的不好,歡迎提出。

#!/bin/sh

##########################################

# 客戶端版本更新系統

##########################################

# client_init_version 客戶端新版本,預設是0

# client_old_version 客戶端舊版本(存放在version_file指定的檔案中),當沒有時取client_init_version

# client_new_version 客戶端新版本,預設是client_old_version+1

# version_file 存放上次版本的檔案

client_init_version='0'

client_old_version='0'

client_new_version=''

version_file='client_version.txt'

# client_base_path 放置前端的目錄

# version_config_file 伺服器前端版本配置檔案

# svn_path 前端svn位址

client_base_path='/data/ylzj_test/img/'

version_config_file='/data/ylzj_test/sljweb/version.jsp'

svn_path=''

client_new_path=''

client_old_path=''

#更新是否成功

if_succ=''

initversionfileifnoexist()

initclientnewversion()

checkiffileexistanddosomething()

existfile=$

tmp_backup_flash_tar=''

if [ -f $1 -o -d $1 ];then

echo '[warn] flash dir '$1' has exists, it will be tar and backup.'

tmp_backup_flash_tar=$existfile'.tar'

cd $subpath

echo '[info] archieving '$existfile' to '$tmp_backup_flash_tar

tar -zcvf $tmp_backup_flash_tar $existfile

echo '[info] removing dir '$existfile

rm -rf $existfile

cd -

fiunset tmpvar

unset subpath

unset existfile

unset tmp_backup_flash_tar

}prepareclientdir()

storethisversionifsucc()

createclient()

updateclient()

createorupdateclient()

echostartinfo()

echoendinfo()

clear

echostartinfo

initversionfileifnoexist

initclientnewversion

prepareclientdir

createorupdateclient

storethisversionifsucc

echoendinfo

Microsoft Update客戶端更新

微軟microsoft update產品組官方部落格於昨天宣布了有關最新的windows update客戶端更新的訊息。根據這則部落格,微軟從當日開始逐漸向所有windows 7,windows server 2008,windows 8,windows rt和windows server 2012...

shell網路客戶端

需要把線上的access日誌傳送到另乙個程式接收 開始想著用python實現,雖然python也有實現類似tail f的方式,但太麻煩,而且效率也有折扣 偶然發現了shell可以實現網路client,並且只用幾行 就可以實現 先上 trap exec 8 exec 8 0 file data ngi...

使用open live writer客戶端寫部落格

wlw window live writer 在很早之前就不更新了,後來出了乙個olw open live writer 基本跟wlw相同,只是開源,更小巧好用。選擇日誌服務型別為 其它日誌型別 新增日誌賬戶 備註 xiaofan012 126.com 安裝完olw open live olw剛裝上...