1. 程式人生 > >linxu批量小工具

linxu批量小工具

perl batch.pl -tip

/*
 * >顯示輸入使用者密碼和密碼及操作指令
 * >ip.list格式: 192.168.1.1(多個IP以換行來識別)
 */
-format <cli|text|json> -i ip1  -u <username> -p <password> -P <port> -e <cmd1 cmd2 cmd3 cmdN>
-format cli -i 192.168.1.10 -u root -p abc-123  -P 22 -e  pwd date "ls -l"

-format <cli|text|json> -f <ipListFile> -P <prot> -u <username> -p <password> -n <threadNum> -e <cmd1 cmd2 cmd3 cmdN>
-format cli -f address.list -P 22 -u  root -p abc-123 -n 5 -e who date pwd

-format <cli|text|json> -a <ip1 ip2 ip3 ip4 ip5> -u <username> -p <password> -P <port> -e <cmd1 cmd2 cmd3 cmdN>
-format cli -a 192.168.1.10 192.168.1.12 192.168.1.13 192.168.1.23 192.168.1.24 -u root -p abc-123 -P 22 -e pwd who

/*
 * >從user.conf配置中讀取使用者和密碼
 */
-format <cli|text|json> -i ip1 -e <cmd1 cmd2 cmd3 cmdN>
-format cli -i 192.168.1.10 -e  pwd date "ls -l"

/*
 * > 從user.conf檔案讀取信任檔案
 */
-format <cli|text|json> -i ip1 -u <username> -t -e <cmd1 cmd2 cmd3 cmdN>
-format cli -i 192.168.1.10 -u root -t -e pwd

-format <cli|text|json> -a <ip1 ip2 ip3 ip4 ip5>  -t  -u <username> -e <cmd1 cmd2 cmd3 cmdN>
-format json -a 192.168.1.10 192.168.1.12 192.168.1.22 192.168.1.27 192.168.1.26 -t -u root  -e pwd


/*
 * >JSON檔案中配置IP,主機地址,埠,使用者,密碼,執行指令
 * >格式如下(多個物件以換行識別):
 * >{"ip":"192.168.1.10","port":22,"username":"root","password":"abc-123","cmd":["pwd","date","ls -l"]}
 */
-format <cli|text|json> -j <jsonFile> -t -n <threadNum>
-format cli -j address.json.list -t -n 5

/*
 * >指定JSON檔案配置,顯示輸入使用者,密碼,執行執行緒數
 * >格式如下:
 * >{"ip":"192.168.1.12","cmd":["free -m","who","ls -l /home"]}
 */
-format <cli|text|json> -j <jsonFile> -P <port> -u <username> -p <password> -n <threadNum>
-format cli -j address.json2.list -P 22 -u root -p abc-123 -n 5

/*
 * >指定信任檔案位置,顯示輸入使用者名稱,操作指令
 * >指定JSON格式:{"ip":"192.168.1.12","cmd":["free -m","who","ls -l /home"]}
 */
-format <cli|text|json> -i ip1  -k <ssh公鑰檔案> -e <cmd1 cmd2 cmd3 cmdN>
-format cli -i 192.168.1.10 -P 22 -u root -k /Users/mengfanzhen/.ssh/id_rsa -e pwd

-format <cli|text|json> -a <ip1 ip2 ip3 ip4 ip5>  -k <ssh公鑰檔案> -u <username> -P <port>  -e <cmd1 cmd2 cmd3 cmdN>
-format cli -a 192.168.1.10 192.168.1.12 192.168.1.22 192.168.1.27 192.168.1.26 -P 22 -u root -k /Users/mengfanzhen/.ssh/id_rsa -e pwd

-format <cli|text|json> -j <jsonFile> -P <port> -u <username> -k <ssh公鑰檔案> -n <threadNum>
-format cli -j address.json2.list -P 22 -u root -k  /Users/mengfanzhen/.ssh/id_rsa -n 5


/*
 * >上傳檔案
 * > lf:本地檔案 
 * > td:目標主機上的目錄
 * > 後面兩命令使用者認證資訊是從user.conf配置檔案中讀取
 * > ip.list格式: 192.168.1.1(多個IP以換行來識別)
 */
-i <ip> -P <port> -u <username> -p <password>  -lf <localFile> -td <targetDirectory>
-i 192.168.1.12 -P 22 -u root -p abc-123 -lf address.jso -td  /tmp

-i <ip> -P <port> -u <username> -p <password>  -ld <localDirectory> -td <targetDirectory>
-i 192.168.1.12 -P 22 -u root -p abc-123 -ld test -td  /tmp

-i <ip> -lf <localFile> -td <targetDirectory>
-i 192.168.1.12 -lf address.jso -td  /tmp

-i <ip> -ld <localDirectory> -td <targetDirectory>
-i 192.168.1.12 -ld test -td  /tmp

-f <ipFile> -n <threadNumber> -lf <localFile> -td <targetDirectory>
-f address.list -n 5 -lf address.jso -td  /tmp-f address.list -n 5 -lf address.jso -td  /tmp

/*
 * >本地SQL小工具
 * >配置連線檔案位置:config/connConfig目錄
 */
-C <SQLConConfig> -s <SQL語句>
-C wisdom_db -s "select * from alarm_all"
-C <SQLConConfig>  -M  -f <SQL檔案>
-C wisdom_db -M -f sql.list

小demo

perl batch.pl -format cli -i 192.168.1.10 -e  pwd date \"ls -l\" who
------------------------------------------------------------------------------------------------------------------------
主機:[192.168.1.10:22] execCmds:[pwd, date, ls -l, who]
------------------------------------------------------------------------------------------------------------------------
exec[1]: pwd>
/root

exec[2]: date>
Sun Nov  4 15:26:36 CST 2018

exec[3]: ls -l>
total 3172
-rw-------. 1 root root     1259 Feb 10  2018 anaconda-ks.cfg
-rw-r--r--. 1 root root     1583 Sep  8 09:04 ip.txt
drwxr-xr-x. 5  501 games      91 Sep 16 12:38 linuxBatchUtil
-rw-r--r--. 1 root root  3236177 Sep 15 09:53 linuxBatchUtil1.1.1.tar.gz

exec[4]: who>
root     tty1         2018-09-16 12:19
root     pts/0        2018-11-04 14:50 (192.168.1.102)
root     pts/1        2018-11-04 15:26 (192.168.1.102)