expect安裝及使用

xshlife2發表於2020-12-23

一、介紹

expect是一款自動化的指令碼解釋型的工具。

expect基於tcl指令碼,expect指令碼的執行需要tcl的支援。

expect對一些需要互動輸入的命令很有幫助,比如ssh ftp scp telnet。

遠端登入linux伺服器的時候,ssh命令需要手工輸入密碼,當登入多臺機器的時候就會非常繁瑣。

expect就可以根據設定的規則,自動幫我們輸入密碼,大大節省了時間。

二、安裝expect
一般機器不會自帶expect,需要手動安裝。yum源安裝expect,使用yum源可以自動解決依賴,也可以rpm包安裝

yum install expect -y

expect

expect1.1>
三、expect基礎知識

複製程式碼
expect指令碼
指令碼開頭
expect指令碼一般以#!/usr/bin/expect -f開頭,類似bash指令碼。

常用字尾
expect指令碼常常以.exp或者.ex結束。

expect主要命令
spawn 新建一個程式,這個程式的互動由expect控制
expect 等待接受程式返回的字串,直到超時時間,根據規則決定下一步操作
send 傳送字串給expect控制的程式
set 設定變數為某個值
exp_continue 重新執行expect命令分支
[lindex $argv 0] 獲取expect指令碼的第1個引數
[lindex $argv 1] 獲取expect指令碼的第2個引數
set timeout -1 設定超時方式為永遠等待
set timeout 30 設定超時時間為30秒
interact 將指令碼的控制權交給使用者,使用者可繼續輸入命令
expect eof 等待spawn程式結束後退出訊號eof
expect命令分支
expect命令採用了tcl的模式-動作語法,此語法有以下幾種模式:

單一分支語法
set password 123456
expect "assword:" { send “$password\r” }
當輸出中匹配
assword:時,輸出password變數的數值和回車。

多分支語法
set password 123456
expect {
    “(yes/no)?” { send “yes\r”; exp_continue }
    “*assword:” { send “$password\r” }
}

當輸出中包含(yes/no)?時,輸出yes和回車,同時重新執行此多分支語句。

當輸出中匹配*assword:時,輸出password變數的數值和回車。

複製程式碼
四、expect應用例項

1.傳參式ssh登入指定主機

複製程式碼
#!/usr/bin/expect -f
set ip [ lindex $argv 0 ]       //接收第一個引數,並設定IP
set pass [ lindex a r g v 1 ]               / / 接 收 第 二 個 參 數 , 並 設 置 密 碼 s e t t i m e o u t 10         / / 設 置 超 時 時 間 s p a w n s s h r o o t @ argv 1 ]        //接收第二個引數,並設定密碼 set timeout 10      //設定超時時間 spawn ssh root@ argv1]       //,settimeout10    //spawnsshroot@ip         //傳送ssh請求
expect {     //返回資訊匹配
“*yes/no” { send “yes\r”; exp_continue} //第一次ssh連線會提示yes/no,自動傳送yes
“*password:” { send “$pass\r” } //出現密碼提示,傳送密碼
}
interact //互動模式,使用者會停留在遠端伺服器上面
複製程式碼
2.利用expect批量ssh互信
編寫hosts文字用於存放主機資訊

複製程式碼
#!/bin/bash

判斷id_rsa金鑰檔案是否存在

if [ ! -f ~/.ssh/id_rsa ];then
ssh-keygen -t rsa -P “” -f ~/.ssh/id_rsa
else
echo “id_rsa has created …”
fi

#分發到各個節點,這裡分發到host檔案中的主機中.
while read line
do
user=echo $line | cut -d " " -f 2
ip=echo $line | cut -d " " -f 1
passwd=echo $line | cut -d " " -f 3

expect <<EOF
  set timeout 10
  spawn ssh-copy-id $user@$ip
  expect {
    "yes/no" { send "yes\n";exp_continue }
    "password" { send "$passwd\n" }
  }
 expect "password" { send "$passwd\n" }

EOF
done < hosts
https://github.com/users/dfghfhdfgj7/projects/657
https://github.com/users/dfghfhdfgj7/projects/658
https://github.com/users/dfghfhdfgj7/projects/659
https://github.com/users/dfghfhdfgj7/projects/660
https://github.com/users/dfghfhdfgj7/projects/661
https://github.com/users/dfghfhdfgj7/projects/662
https://github.com/users/dfghfhdfgj7/projects/663
https://github.com/users/dfghfhdfgj7/projects/664
https://github.com/users/dfghfhdfgj7/projects/665
https://github.com/users/dfghfhdfgj7/projects/666
https://github.com/users/dfghfhdfgj7/projects/667
https://github.com/users/dfghfhdfgj7/projects/668
https://github.com/users/dfghfhdfgj7/projects/669
https://github.com/users/dfghfhdfgj7/projects/670
https://github.com/users/dfghfhdfgj7/projects/671
https://github.com/users/dfghfhdfgj7/projects/672
https://github.com/users/dfghfhdfgj7/projects/673
https://github.com/users/dfghfhdfgj7/projects/674
https://github.com/users/dfghfhdfgj7/projects/675
https://github.com/users/dfghfhdfgj7/projects/676
https://github.com/users/dfghfhdfgj7/projects/677
https://github.com/users/dfghfhdfgj7/projects/678
https://github.com/users/dfghfhdfgj7/projects/679
https://github.com/users/dfghfhdfgj7/projects/680
https://github.com/users/dfghfhdfgj7/projects/681
https://github.com/users/dfghfhdfgj7/projects/682
https://github.com/users/dfghfhdfgj7/projects/683
https://github.com/users/dfghfhdfgj7/projects/684
https://github.com/users/dfghfhdfgj7/projects/685
https://github.com/users/dfghfhdfgj7/projects/686
https://github.com/users/dfghfhdfgj7/projects/687
https://github.com/users/dfghfhdfgj7/projects/688
https://github.com/users/dfghfhdfgj7/projects/689
https://github.com/users/dfghfhdfgj7/projects/690
https://github.com/users/dfghfhdfgj7/projects/691
https://github.com/users/dfghfhdfgj7/projects/692
https://github.com/users/dfghfhdfgj7/projects/693
https://github.com/users/dfghfhdfgj7/projects/694
https://github.com/users/dfghfhdfgj7/projects/695
https://github.com/users/dfghfhdfgj7/projects/696
https://github.com/users/dfghfhdfgj7/projects/697
https://github.com/users/dfghfhdfgj7/projects/698
https://github.com/users/dfghfhdfgj7/projects/699
https://github.com/users/dfghfhdfgj7/projects/700
https://github.com/users/dfghfhdfgj7/projects/701
https://github.com/users/dfghfhdfgj7/projects/702
https://github.com/users/dfghfhdfgj7/projects/703
https://github.com/users/dfghfhdfgj7/projects/704
https://github.com/users/dfghfhdfgj7/projects/705
https://github.com/users/dfghfhdfgj7/projects/706
https://github.com/users/dfghfhdfgj7/projects/707
https://github.com/users/dfghfhdfgj7/projects/708
https://github.com/users/dfghfhdfgj7/projects/709
https://github.com/users/dfghfhdfgj7/projects/710
https://github.com/users/dfghfhdfgj7/projects/711
https://github.com/users/dfghfhdfgj7/projects/712
https://github.com/users/dfghfhdfgj7/projects/713
https://github.com/users/dfghfhdfgj7/projects/714
https://github.com/users/dfghfhdfgj7/projects/715
https://github.com/users/dfghfhdfgj7/projects/716
https://github.com/users/dfghfhdfgj7/projects/717
https://github.com/users/dfghfhdfgj7/projects/718
https://github.com/users/dfghfhdfgj7/projects/719
https://github.com/users/dfghfhdfgj7/projects/720
https://github.com/users/dfghfhdfgj7/projects/721
https://github.com/users/dfghfhdfgj7/projects/722
https://github.com/users/dfghfhdfgj7/projects/723
https://github.com/users/dfghfhdfgj7/projects/724
https://github.com/users/dfghfhdfgj7/projects/725
https://github.com/users/dfghfhdfgj7/projects/726
https://github.com/users/dfghfhdfgj7/projects/727
https://github.com/users/dfghfhdfgj7/projects/728
https://github.com/users/dfghfhdfgj7/projects/729
https://github.com/users/dfghfhdfgj7/projects/730
https://github.com/users/dfghfhdfgj7/projects/731
https://github.com/users/dfghfhdfgj7/projects/732
https://github.com/users/dfghfhdfgj7/projects/733
https://github.com/users/dfghfhdfgj7/projects/734
https://github.com/users/dfghfhdfgj7/projects/735
https://github.com/users/dfghfhdfgj7/projects/736
https://github.com/users/dfghfhdfgj7/projects/737
https://github.com/users/dfghfhdfgj7/projects/738
https://github.com/users/dfghfhdfgj7/projects/739
https://github.com/users/dfghfhdfgj7/projects/740
https://github.com/users/dfghfhdfgj7/projects/741
https://github.com/users/dfghfhdfgj7/projects/742
https://github.com/users/dfghfhdfgj7/projects/743
https://github.com/users/dfghfhdfgj7/projects/744
https://github.com/users/dfghfhdfgj7/projects/745
https://github.com/users/dfghfhdfgj7/projects/746
https://github.com/users/dfghfhdfgj7/projects/747
https://github.com/users/dfghfhdfgj7/projects/748
https://github.com/users/dfghfhdfgj7/projects/749
https://github.com/users/dfghfhdfgj7/projects/750
https://github.com/users/dfghfhdfgj7/projects/751
https://github.com/users/dfghfhdfgj7/projects/752
https://github.com/users/dfghfhdfgj7/projects/753
https://github.com/users/dfghfhdfgj7/projects/754
https://github.com/users/dfghfhdfgj7/projects/755
https://github.com/users/dfghfhdfgj7/projects/756
https://github.com/users/dfghfhdfgj7/projects/757
https://github.com/users/dfghfhdfgj7/projects/758
https://github.com/users/dfghfhdfgj7/projects/759
https://github.com/users/dfghfhdfgj7/projects/760
https://github.com/users/dfghfhdfgj7/projects/761
https://github.com/users/dfghfhdfgj7/projects/762
https://github.com/users/dfghfhdfgj7/projects/763
https://github.com/users/dfghfhdfgj7/projects/764
https://github.com/users/dfghfhdfgj7/projects/765
https://github.com/users/dfghfhdfgj7/projects/766
https://github.com/users/dfghfhdfgj7/projects/767
https://github.com/users/dfghfhdfgj7/projects/768
https://github.com/users/dfghfhdfgj7/projects/769
https://github.com/users/dfghfhdfgj7/projects/770
https://github.com/users/dfghfhdfgj7/projects/771
https://github.com/users/dfghfhdfgj7/projects/772
https://github.com/users/dfghfhdfgj7/projects/773
https://github.com/users/dfghfhdfgj7/projects/774
https://github.com/users/dfghfhdfgj7/projects/775
https://github.com/users/dfghfhdfgj7/projects/776
https://github.com/users/dfghfhdfgj7/projects/777
https://github.com/users/dfghfhdfgj7/projects/778
https://github.com/users/dfghfhdfgj7/projects/779
https://github.com/users/dfghfhdfgj7/projects/780
https://github.com/users/dfghfhdfgj7/projects/781
https://github.com/users/dfghfhdfgj7/projects/782
https://github.com/users/dfghfhdfgj7/projects/783
https://github.com/users/dfghfhdfgj7/projects/784
https://github.com/users/dfghfhdfgj7/projects/785
https://github.com/users/dfghfhdfgj7/projects/786
https://github.com/users/dfghfhdfgj7/projects/787
https://github.com/users/dfghfhdfgj7/projects/788
https://github.com/users/dfghfhdfgj7/projects/789
https://github.com/users/dfghfhdfgj7/projects/790
https://github.com/users/dfghfhdfgj7/projects/791
https://github.com/users/dfghfhdfgj7/projects/792
https://github.com/users/dfghfhdfgj7/projects/793
https://github.com/users/dfghfhdfgj7/projects/794
https://github.com/users/dfghfhdfgj7/projects/795
https://github.com/users/dfghfhdfgj7/projects/796
https://github.com/users/dfghfhdfgj7/projects/797
https://github.com/users/dfghfhdfgj7/projects/798
https://github.com/users/dfghfhdfgj7/projects/799
https://github.com/users/dfghfhdfgj7/projects/800
https://github.com/users/dfghfhdfgj7/projects/801
https://github.com/users/dfghfhdfgj7/projects/802
https://github.com/users/dfghfhdfgj7/projects/803
https://github.com/users/dfghfhdfgj7/projects/804
https://github.com/users/dfghfhdfgj7/projects/805
https://github.com/users/dfghfhdfgj7/projects/806
https://github.com/users/dfghfhdfgj7/projects/807
https://github.com/users/dfghfhdfgj7/projects/808
https://github.com/users/dfghfhdfgj7/projects/809
https://github.com/users/dfghfhdfgj7/projects/810
https://github.com/users/dfghfhdfgj7/projects/811
https://github.com/users/dfghfhdfgj7/projects/812
https://github.com/users/dfghfhdfgj7/projects/813
https://github.com/users/dfghfhdfgj7/projects/814
https://github.com/users/dfghfhdfgj7/projects/815
https://github.com/users/dfghfhdfgj7/projects/816
https://github.com/users/dfghfhdfgj7/projects/817
https://github.com/users/dfghfhdfgj7/projects/818
https://github.com/users/dfghfhdfgj7/projects/819
https://github.com/users/dfghfhdfgj7/projects/820
https://github.com/users/dfghfhdfgj7/projects/821
https://github.com/users/dfghfhdfgj7/projects/822
https://github.com/users/dfghfhdfgj7/projects/823
https://github.com/users/dfghfhdfgj7/projects/824
https://github.com/users/dfghfhdfgj7/projects/825
https://github.com/users/dfghfhdfgj7/projects/826
https://github.com/users/dfghfhdfgj7/projects/827
https://github.com/users/dfghfhdfgj7/projects/828
https://github.com/users/dfghfhdfgj7/projects/829
https://github.com/users/dfghfhdfgj7/projects/830
https://github.com/users/dfghfhdfgj7/projects/831
https://github.com/users/dfghfhdfgj7/projects/832
https://github.com/users/dfghfhdfgj7/projects/833
https://github.com/users/dfghfhdfgj7/projects/834
https://github.com/users/dfghfhdfgj7/projects/835
https://github.com/users/dfghfhdfgj7/projects/836
https://github.com/users/dfghfhdfgj7/projects/837
https://github.com/users/dfghfhdfgj7/projects/838
https://github.com/users/dfghfhdfgj7/projects/839
https://github.com/users/dfghfhdfgj7/projects/840
https://github.com/users/dfghfhdfgj7/projects/841
https://github.com/users/dfghfhdfgj7/projects/842
https://github.com/users/dfghfhdfgj7/projects/843
https://github.com/users/dfghfhdfgj7/projects/844
https://github.com/users/dfghfhdfgj7/projects/845
https://github.com/users/dfghfhdfgj7/projects/846
https://github.com/users/dfghfhdfgj7/projects/847
https://github.com/users/dfghfhdfgj7/projects/848
https://github.com/users/dfghfhdfgj7/projects/849
https://github.com/users/dfghfhdfgj7/projects/850
https://github.com/users/dfghfhdfgj7/projects/851
https://github.com/users/dfghfhdfgj7/projects/852
https://github.com/users/dfghfhdfgj7/projects/853
https://github.com/users/dfghfhdfgj7/projects/854
https://github.com/users/dfghfhdfgj7/projects/855
https://github.com/users/dfghfhdfgj7/projects/856
https://github.com/users/dfghfhdfgj7/projects/857
https://github.com/users/dfghfhdfgj7/projects/858
https://github.com/users/dfghfhdfgj7/projects/859
https://github.com/users/dfghfhdfgj7/projects/860
https://github.com/users/dfghfhdfgj7/projects/861
https://github.com/users/dfghfhdfgj7/projects/862
https://github.com/users/dfghfhdfgj7/projects/863
https://github.com/users/dfghfhdfgj7/projects/864
https://github.com/users/dfghfhdfgj7/projects/865
https://github.com/users/dfghfhdfgj7/projects/866
https://github.com/users/dfghfhdfgj7/projects/867
https://github.com/users/dfghfhdfgj7/projects/868
https://github.com/users/dfghfhdfgj7/projects/869
https://github.com/users/dfghfhdfgj7/projects/870
https://github.com/users/dfghfhdfgj7/projects/871
https://github.com/users/dfghfhdfgj7/projects/872
https://github.com/users/dfghfhdfgj7/projects/873
https://github.com/users/dfghfhdfgj7/projects/874
https://github.com/users/dfghfhdfgj7/projects/875
https://github.com/users/dfghfhdfgj7/projects/876
https://github.com/users/dfghfhdfgj7/projects/877
https://github.com/users/dfghfhdfgj7/projects/878
https://github.com/users/dfghfhdfgj7/projects/879
https://github.com/users/dfghfhdfgj7/projects/880
https://github.com/users/dfghfhdfgj7/projects/881
https://github.com/users/dfghfhdfgj7/projects/882
https://github.com/users/dfghfhdfgj7/projects/883
https://github.com/users/dfghfhdfgj7/projects/884
https://github.com/users/dfghfhdfgj7/projects/885
https://github.com/users/dfghfhdfgj7/projects/886
https://github.com/users/dfghfhdfgj7/projects/887
https://github.com/users/dfghfhdfgj7/projects/888
https://github.com/users/dfghfhdfgj7/projects/889
https://github.com/users/dfghfhdfgj7/projects/890
https://github.com/users/dfghfhdfgj7/projects/891
https://github.com/users/dfghfhdfgj7/projects/892
https://github.com/users/dfghfhdfgj7/projects/893
https://github.com/users/dfghfhdfgj7/projects/894
https://github.com/users/dfghfhdfgj7/projects/895
https://github.com/users/dfghfhdfgj7/projects/896
https://github.com/users/dfghfhdfgj7/projects/897
https://github.com/users/dfghfhdfgj7/projects/898
https://github.com/users/dfghfhdfgj7/projects/899
https://github.com/users/dfghfhdfgj7/projects/900
https://github.com/users/dfghfhdfgj7/projects/901
https://github.com/users/dfghfhdfgj7/projects/902
https://github.com/users/dfghfhdfgj7/projects/903
https://github.com/users/dfghfhdfgj7/projects/904
https://github.com/users/dfghfhdfgj7/projects/905
https://github.com/users/dfghfhdfgj7/projects/906
https://github.com/users/dfghfhdfgj7/projects/907
https://github.com/users/dfghfhdfgj7/projects/908
https://github.com/users/dfghfhdfgj7/projects/909
https://github.com/users/dfghfhdfgj7/projects/910
https://github.com/users/dfghfhdfgj7/projects/911
https://github.com/users/dfghfhdfgj7/projects/912
https://github.com/users/dfghfhdfgj7/projects/913
https://github.com/users/dfghfhdfgj7/projects/914
https://github.com/users/dfghfhdfgj7/projects/915
https://github.com/users/dfghfhdfgj7/projects/916
https://github.com/users/dfghfhdfgj7/projects/917
https://github.com/users/dfghfhdfgj7/projects/918
https://github.com/users/dfghfhdfgj7/projects/919
https://github.com/users/dfghfhdfgj7/projects/920
https://github.com/users/dfghfhdfgj7/projects/921
https://github.com/users/dfghfhdfgj7/projects/922
https://github.com/users/dfghfhdfgj7/projects/923
https://github.com/users/dfghfhdfgj7/projects/924
https://github.com/users/dfghfhdfgj7/projects/925
https://github.com/users/dfghfhdfgj7/projects/926
https://github.com/users/dfghfhdfgj7/projects/927
https://github.com/users/dfghfhdfgj7/projects/928
https://github.com/users/dfghfhdfgj7/projects/929
https://github.com/users/dfghfhdfgj7/projects/930
https://github.com/users/dfghfhdfgj7/projects/931
https://github.com/users/dfghfhdfgj7/projects/932
https://github.com/users/dfghfhdfgj7/projects/933
https://github.com/users/dfghfhdfgj7/projects/934
https://github.com/users/dfghfhdfgj7/projects/935
https://github.com/users/dfghfhdfgj7/projects/936
https://github.com/users/dfghfhdfgj7/projects/937
https://github.com/users/dfghfhdfgj7/projects/938
https://github.com/users/dfghfhdfgj7/projects/939
https://github.com/users/dfghfhdfgj7/projects/940
https://github.com/users/dfghfhdfgj7/projects/941
https://github.com/users/dfghfhdfgj7/projects/942
https://github.com/users/dfghfhdfgj7/projects/943
https://github.com/users/dfghfhdfgj7/projects/944
https://github.com/users/dfghfhdfgj7/projects/945
https://github.com/users/dfghfhdfgj7/projects/946
https://github.com/users/dfghfhdfgj7/projects/947
https://github.com/users/dfghfhdfgj7/projects/948
https://github.com/users/dfghfhdfgj7/projects/949
https://github.com/users/dfghfhdfgj7/projects/950
https://github.com/users/dfghfhdfgj7/projects/951
https://github.com/users/dfghfhdfgj7/projects/952
https://github.com/users/dfghfhdfgj7/projects/953
https://github.com/users/dfghfhdfgj7/projects/954
https://github.com/users/dfghfhdfgj7/projects/955
https://github.com/users/dfghfhdfgj7/projects/956
https://github.com/users/dfghfhdfgj7/projects/957
https://github.com/users/dfghfhdfgj7/projects/958
https://github.com/users/dfghfhdfgj7/projects/959
https://github.com/users/dfghfhdfgj7/projects/960
https://github.com/users/dfghfhdfgj7/projects/961
https://github.com/users/dfghfhdfgj7/projects/962
https://github.com/users/dfghfhdfgj7/projects/963
https://github.com/users/dfghfhdfgj7/projects/964
https://github.com/users/dfghfhdfgj7/projects/965
https://github.com/users/dfghfhdfgj7/projects/966
https://github.com/users/dfghfhdfgj7/projects/967
https://github.com/users/dfghfhdfgj7/projects/968
https://github.com/users/dfghfhdfgj7/projects/969
https://github.com/users/dfghfhdfgj7/projects/970
https://github.com/users/dfghfhdfgj7/projects/971
https://github.com/users/dfghfhdfgj7/projects/972
https://github.com/users/dfghfhdfgj7/projects/973
https://github.com/users/dfghfhdfgj7/projects/974
https://github.com/users/dfghfhdfgj7/projects/975
https://github.com/users/dfghfhdfgj7/projects/976
https://github.com/users/dfghfhdfgj7/projects/977
https://github.com/users/dfghfhdfgj7/projects/978
https://github.com/users/dfghfhdfgj7/projects/979
https://github.com/users/dfghfhdfgj7/projects/980
https://github.com/users/dfghfhdfgj7/projects/981
https://github.com/users/dfghfhdfgj7/projects/982
https://github.com/users/dfghfhdfgj7/projects/983
https://github.com/users/dfghfhdfgj7/projects/984
https://github.com/users/dfghfhdfgj7/projects/985
https://github.com/users/dfghfhdfgj7/projects/986
https://github.com/users/dfghfhdfgj7/projects/987
https://github.com/users/dfghfhdfgj7/projects/988
https://github.com/users/dfghfhdfgj7/projects/989
https://github.com/users/dfghfhdfgj7/projects/990
https://github.com/users/dfghfhdfgj7/projects/991
https://github.com/users/dfghfhdfgj7/projects/992
https://github.com/users/dfghfhdfgj7/projects/993
https://github.com/users/dfghfhdfgj7/projects/994
https://github.com/users/dfghfhdfgj7/projects/995
https://github.com/users/dfghfhdfgj7/projects/996
https://github.com/users/dfghfhdfgj7/projects/997
https://github.com/users/dfghfhdfgj7/projects/998
https://github.com/users/dfghfhdfgj7/projects/999
https://github.com/users/dfghfhdfgj7/projects/1000
https://github.com/users/dfghfhdfgj7/projects/1001
https://github.com/users/dfghfhdfgj7/projects/1002
https://github.com/users/dfghfhdfgj7/projects/1003
https://github.com/users/dfghfhdfgj7/projects/1004
https://github.com/users/dfghfhdfgj7/projects/1005
https://github.com/users/dfghfhdfgj7/projects/1006
https://github.com/users/dfghfhdfgj7/projects/1007
https://github.com/users/dfghfhdfgj7/projects/1008
https://github.com/users/dfghfhdfgj7/projects/1009
https://github.com/users/dfghfhdfgj7/projects/1010
https://github.com/users/dfghfhdfgj7/projects/1011
https://github.com/users/dfghfhdfgj7/projects/1012
https://github.com/users/dfghfhdfgj7/projects/1013
https://github.com/users/dfghfhdfgj7/projects/1014
https://github.com/users/dfghfhdfgj7/projects/1015
https://github.com/users/dfghfhdfgj7/projects/1016
https://github.com/users/dfghfhdfgj7/projects/1017
https://github.com/users/dfghfhdfgj7/projects/1018
https://github.com/users/dfghfhdfgj7/projects/1019
https://github.com/users/dfghfhdfgj7/projects/1020
https://github.com/users/dfghfhdfgj7/projects/1021
https://github.com/users/dfghfhdfgj7/projects/1022
https://github.com/users/dfghfhdfgj7/projects/1023
https://github.com/users/dfghfhdfgj7/projects/1024
https://github.com/users/dfghfhdfgj7/projects/1025
https://github.com/users/dfghfhdfgj7/projects/1026
https://github.com/users/dfghfhdfgj7/projects/1027
https://github.com/users/dfghfhdfgj7/projects/1028
https://github.com/users/dfghfhdfgj7/projects/1029
https://github.com/users/dfghfhdfgj7/projects/1030
https://github.com/users/dfghfhdfgj7/projects/1031
https://github.com/users/dfghfhdfgj7/projects/1032
https://github.com/users/dfghfhdfgj7/projects/1033
https://github.com/users/dfghfhdfgj7/projects/1034
https://github.com/users/dfghfhdfgj7/projects/1035
https://github.com/users/dfghfhdfgj7/projects/1036
https://github.com/users/dfghfhdfgj7/projects/1037
https://github.com/users/dfghfhdfgj7/projects/1038
https://github.com/users/dfghfhdfgj7/projects/1039
https://github.com/users/dfghfhdfgj7/projects/1040
https://github.com/users/dfghfhdfgj7/projects/1041
https://github.com/users/dfghfhdfgj7/projects/1042
https://github.com/users/dfghfhdfgj7/projects/1043
https://github.com/users/dfghfhdfgj7/projects/1044
https://github.com/users/dfghfhdfgj7/projects/1045
https://github.com/users/dfghfhdfgj7/projects/1046

相關文章