㈠ 用shell腳本怎麼實現安裝升級版本
A:本腳本運行的機器,Linux
B:待安裝JDK的機器, Linux
首先在腳本運行的機器A上確定可以ssh無密碼登錄到待安裝jdk的機器B上,然後就可以在A上運行本腳本:
復制代碼 代碼如下:
$ ./install-jdk.sh B的IP
or:
復制代碼 代碼如下:
$ ./install-jdk.sh "B的IP" "JDK的URI"
就可以在機器B上安裝JDK。jdk使用的tar包需要用戶自己設定DEFAULT_JDK_SRC=?,保證可以wget得到即可。下面是全部腳本內容:
復制代碼 代碼如下:
#!/bin/bash
#
# @file
# install-jdk.sh
#
# @date
# 2013-12-19
#
# @author
# cheungmine
#
# @version
# 0.0.1pre
#
# @usage:
# ./install-jdk.sh 192.168.122.206
#
################################################################################
. common.sh
#***********************************************************
# install_jdk
# install jdk on machine: /usr/local/lib
#
# Parameters:
# machine - root@ipaddr
# jdkUri - uri for fetching tarball
#
# Example:
#
# install_jdk [email protected] ftp://vm-ftp/pub/tarball/jdk-7u67-linux-x64.tar.gz
#
#***********************************************************
. common.sh
# YOU MIGHT CHANGE BELOW LINE TO GET YOUR JDK TARBALL:
DEFAULT_JDK_SRC="ftp://vm-ftp/pub/tarball/jdk-7u67-linux-x64.tar.gz"
# DO NOT CHANGE BELOW TWO LINES:
INSTALL_DIR="/usr/local/lib/java"
LOCAL_DIR="./.tmp"
function install_jdk() {
echo -e "<INFO> install jdk on machine: $1"
local DEST_LOGIN=$1
local JDK_URI=$2
local TAR=$(basename $JDK_URI)
echo -e "<INFO> jdk: '$JDK_URI'"
wget -c $JDK_URI -P $LOCAL_DIR -O $LOCAL_DIR/$TAR
$(is_empty_dir "$LOCAL_DIR/jdk_untar")
local ret=$?
case $ret in
$DIR_NOT_EXISTED)
mkdir -p $LOCAL_DIR/jdk_untar
;;
$DIR_IS_EMPTY)
;;
$DIR_NOT_EMPTY)
rm -rf $LOCAL_DIR/jdk_untar/*
;;
*)
exit $ERR_FATAL_ERROR
;;
esac
# untar to jdk_untar
tar -zxf $LOCAL_DIR/$TAR -C $LOCAL_DIR/jdk_untar
$(is_empty_dir "$LOCAL_DIR/jdk_untar")
local ret=$?
if [ "$ret" -eq "$DIR_NOT_EMPTY" ]; then
local jdk_home=`ls $LOCAL_DIR/jdk_untar 2>/dev/null`
echo $jdk_home
else
exit $ERR_FATAL_ERROR
fi
echo -e "<INFO> create folder on: $DEST_LOGIN:$INSTALL_DIR"
local ret=`ssh $DEST_LOGIN "mkdir $INSTALL_DIR"`
echo -e "<INFO> $jdk_home/ to: $DEST_LOGIN:$INSTALL_DIR/"
local ret=`scp -r $LOCAL_DIR/jdk_untar/$jdk_home $DEST_LOGIN:$INSTALL_DIR`
# remove local tar
rm -rf $LOCAL_DIR/jdk_untar
local DEST_JAVA_HOME=$INSTALL_DIR/$jdk_home
echo -e "<TODO> remove old settings for install_jdk in /etc/profile"
echo -e "<INFO> set /etc/profile: JAVA_HOME=$DEST_JAVA_HOME"
local ret=`ssh $DEST_LOGIN "echo '' >> /etc/profile"`
local ret=`ssh $DEST_LOGIN "echo '#!{{[email protected]==>' >> /etc/profile"`
local ret=`ssh $DEST_LOGIN "echo 'export JAVA_HOME=$DEST_JAVA_HOME' >> /etc/profile"`
local ret=`ssh $DEST_LOGIN "echo 'export CLASSPATH=.:\\$JAVA_HOME/lib/tools.jar:\\$JAVA_HOME/lib/dt.jar' >> /etc/profile"`
local ret=`ssh $DEST_LOGIN "echo 'export PATH=\\$JAVA_HOME/bin:\\$JAVA_HOME/jre/bin:\\$PATH' >> /etc/profile"`
local ret=`ssh $DEST_LOGIN "echo '#!<[email protected]}}'>> /etc/profile"`
local ret=`ssh $DEST_LOGIN ". /etc/profile"`
}
function uninstall_jdk() {
echo -e "<TODO> uninstall jdk from: $1"
}
#=======================================================================
# ---- main() ----
if [ -n $1 ]; then
DEST_IP=$1
JDK_SRC=$DEFAULT_JDK_SRC
if [ $# == 2 ]; then
JDK_SRC=$2
fi
echo -e "<INFO> install jdk on '$DEST_IP', jdk: '$JDK_SRC'"
install_jdk "root@$DEST_IP" "$JDK_SRC"
fi
㈡ 求傳奇私服裝備升級腳本!!!!!
這個很簡單的,用好幾個命令就可以。
1、檢測。首先檢測身上是否有裝備,裝備是不是已經升級到最大值,其次檢測人物身上元寶夠不夠。
2、執行。具體增加屬性的命令根據引擎的版本有些不同,可以參照引擎版本的說明。不光要執行屬性增加,還有記得把扣除元寶的命令也寫進去。
3、提示。比如成功之後全服公告啊、元寶不夠提示元寶不夠、升級到最大值提示無法升級、身上沒穿裝備的時候提示沒有穿戴某某裝備之類的。
當然,這樣的腳本也可以擴展一下,可以限制為需要指定類型的裝備才可升級。
看你說要自己研究,我就只跟你說說大概的思路,剩下的自己研究出來才有意思。如果直接給個腳本就沒意思了。
請採納答案,支持我一下。
㈢ 求天龍八部1到40自動任務升級腳本,
1到40升級很快啊,升10級進門派,然後刷局棋在去古1刷下,拿雙很快就到啦
㈣ 有沒有自動升級的腳本
如建立了個表是 WoolenDeliveDetail,更新表的存儲過程是UP_WoolenDeliveDetailCREATE PROCEDURE UP_WoolenDeliveDetail @INTUpdateID INT,--為-1 刪除0 修改1新增 @INTDeDetailID INT, @INTDeID INT, @INTColorID INT, @NVD1 NVARCHAR(20), @NVD2 NVARCHAR(20), @NVD3 NVARCHAR(20), @NVD4 NVARCHAR(20), @NVD5 NVARCHAR(20), @NVD6 NVARCHAR(20), @NVD7 NVARCHAR(20), @NVD8 NVARCHAR(20), @NVD9 NVARCHAR(20), @NVD10 NVARCHAR(20) AS IF (@INTUpdateID=0) Begin UPDATE WoolenDeliveDetail SET DeID=@INTDeID,ColorID=@INTColorID, D1=@NVD1,D2=@NVD2,D3=@NVD3,D4=@NVD4,D5=@NVD5,D6=@NVD6, D7=@NVD7,D8=@NVD8,D9=@NVD9,D10=@NVD10 WHERE DeDetailID=@INTDeDetailID End ELSE IF (@INTUpdateID=1) Begin SET @INTDeDetailID=(Select ISNULL(MAX(DeDetailID),0) From WoolenDeliveDetail)+1--取新的ID INSERT INTO WoolenDeliveDetail (DeDetailID,DeID,ColorID, D1,D2,D3,D4,D5,D6,D7,D8,D9,D10 ) VALUES (@INTDeDetailID,@INTDeID,@INTColorID, @NVD1,@NVD2,@NVD3,@NVD4,@NVD5,@NVD6,@NVD7,@NVD8,@NVD9,@NVD10 ) End ELSE DELETE FROM WoolenDeliveDetail WHERE DeDetailID=@INTDeDetailID GO 其他的常規的數據表更新存儲過程與這存儲過程結構差不多。有沒有方法實現,新建一表後,執行一個通用的生成更新數據的存儲過程,後生成該表的更新存儲腳本?? 解決方法: 用下面這個自動生成表的更新數據的存儲過程:CREATE PROCEDURE SP_CreateProcre @TableName nvarchar(50) AS /* 功能: 自動生成表的更新數據的存儲過程如:當建立表MyTable後,執行SP_CreateProcre ,生成表MyTable的數據更新的存儲過程UP_MyTable 設計: OK_008 時間: 2006-05 備註: 1、請在查詢分析器上執行:EXEC SP_CreateProcre TableName 2、由於生成的字元串長度合計很多時候存在>4000以上,所有隻使用Print輸出,再Copy即可。 3、該方法能生成一般表的更新數據的存儲過程,其中更新格式可以根據實際情況修改。 */ DECLARE @strParameter nvarchar(3000) DECLARE @strInsert nvarchar(3000) DECLARE @strUpdate nvarchar(3000) DECLARE @strDelete nvarchar(500) DECLARE @strWhere nvarchar(100) DECLARE @strNewID nvarchar(100) DECLARE @SQL_CreateProc nvarchar(4000) SET @SQL_CreateProc='CREATE PROCEDURE UP_'+@TableName +char(13)+'@INTUpdateID int,'+' /* -1 刪除 0 修改 1新增 */' SET @strParameter='' SET @strInsert='' SET @strUpdate='' SET @strWhere='' DECLARE @TName nvarchar(50),@TypeName nvarchar(50),@TypeLength nvarchar(50),@Colstat bit DECLARE Obj_Cursor CURSOR FOR SELECT * FROM FN_GetObjColInfo(@TableName) OPEN Obj_Cursor FETCH NEXT FROM Obj_Cursor INTO @TName,@TypeName,@TypeLength,@Colstat WHILE @@FETCH_STATUS=0 BEGIN --構造存儲過程參數部分 SET @strParameter=@strParameter +CHAR(13)+'@'+ @TName +''+@TypeName+','--構造新增數據部分 IF @Colstat=0 SET @strInsert=@strInsert +'@'+ @TName +','--構造更新數據部分 IF (@strWhere='') BEGIN SET @strNewID='SET @'+@TName+'=(Select ISNULL(MAX('+@TName+'),0) From '+@TableName+')+1 --取新的ID' SET @strWhere=' WHERE '+@TName+'='+'@'+@TName END ELSE SET @strUpdate=@strUpdate+@TName+'='+'@'+@TName +','--構造刪除數據部分 FETCH NEXT FROM Obj_Cursor INTO @TName,@TypeName,@TypeLength,@Colstat END CLOSE Obj_Cursor DEALLOCATE Obj_Cursor SET @strParameter=LEFT(@strParameter,LEN(@strParameter)-1) --去掉最右邊的逗號 SET @strUpdate=LEFT(@strUpdate,LEN(@strUpdate)-1) SET @strInsert=LEFT(@strInsert,LEN(@strInsert)-1) --存儲過程名、參數 PRINT @SQL_CreateProc+@strParameter +CHAR(13)+'AS'--修改PRINT 'IF (@INTUpdateID=0)' PRINT' BEGIN'+CHAR(13) PRINT CHAR(9)+'UPDATE '+@TableName+' SET '+@strUpdate+CHAR(13)+CHAR(9)+@strWhere PRINT ' END'--增加PRINT 'IF (@INTUpdateID=1)' PRINT ' BEGIN' PRINT CHAR(9)+@strNewID PRINT CHAR(9)+'INSERT INTO '+@TableName+' SELECT '+@strInsert PRINT ' END'--刪除PRINT 'ELSE' PRINT ' BEGIN' PRINT CHAR(9)+'DELETE FROM '+@TableName +@strWhere PRINT ' END' PRINT 'GO' GO 其中有的自定義函數FN_GetObjColInfo,代碼如下:/*功能:返回某一表的所有欄位、存儲過程、函數的參數信息設計:OK_008 時間:2006-05*/ CREATE FUNCTION FN_GetObjColInfo (@ObjName varchar(50)) RETURNS @Return_Table TABLE( TName nvarchar(50), TypeName nvarchar(50), TypeLength nvarchar(50), Colstat Bit ) AS BEGIN INSERT @Return_Table select b.name as 欄位名,c.name as 欄位類型,b.length as 欄位長度,b.colstat as 是否自動增長 from sysobjects a inner join syscolumns b on a.id=b.id inner join systypes c on c.xusertype=b.xtype where a.name =@ObjName order by B.ColID RETURN END 經過自己測試,感覺還行。
㈤ 聽說魔獸世界現在有自動做任務升級腳本,哪裡弄的。
淘寶 魔獸兄弟。。封號的幾率很小,不過本人親測那個腳本做任務其實很慢,而且很容易卡在某個角落一直跑。。有一次對著山跑了一晚上,坑爹啊。
㈥ 傳奇里的升級觸發里腳本怎麼寫
寫在QF腳本里,[@PlayLevelUp]#IFCHECKLEVEL = 35 (這條命令,引擎不同,命令不同)
#ACT
GIVE 開天 1BREAK 如果這個玩家升級了,那麼將檢查是否是升的35級,如果是,給開天,不是則無執行