集群大部分节点不联外网,自己本地电脑下载,再通过fz上传比较麻烦
此工具利用RNA小服务器上的虚拟机与集群交互,自动下载上传集群
这样不仅可以免去一些机械的人工操作,而且还能避免本地PC下载中断
交互用的就是shell里自带的except,简单粗暴
自动登录在集群上登录内网小服务器,此小服务器可联外网,小服务器上下载完毕,scp上传集群,然后删除小服务器上的文件
except脚本
文件 login_RNA_server1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33#!/usr/bin/expect
set url [lindex $argv 0]
set y_date [lindex $argv 1]
set account [lindex $argv 2]
set outdir [lindex $argv 3]
spawn ssh rna@172.25.35.15
expect {
"*Warning: Permanently added" {exp_continue}
"*password" {send "123456\r";exp_continue}
"\\\$" {send "\[ -d $account \] && cd $account || mkdir $account;cd $account\r"}
}
expect "\\\$"
send "\[ -d $y_date \] && cd $y_date || mkdir $y_date;cd $y_date\r"
expect "\\\$"
send "wget $url\r"
expect "\\\$"
send "exit\r"
expect eof
spawn scp rna@172.25.35.15:/home/rna/$account/$y_date/* $outdir
expect {
"*password:" {send "123456\r";exp_continue}
}
spawn ssh rna@172.25.35.15
expect {
"*Warning: Permanently added" {exp_continue}
"*password" {send "123456\r";exp_continue}
"\\\$" {send "rm -rf /home/rna/$account/$y_date\r"}
}
expect "\\\$"
send "exit\r"
expect eof
shell脚本传参
文件 easy_download1
2
3
4
5
6
7
8
account=`whoami`
y_date=`date "+%Y-%m-%d_%H-%M-%S"`
url=$1
usage="easy_download [url] [outdir:default(`pwd`)]"
[ $# -gt 2 ] || [ $# -eq 0 ] && echo $usage && exit
[ $# -eq 2 ] && outdir=$2 || outdir=`pwd`
login_RNA_server $url $y_date $account $outdir
用法
1 | easy_download [url] [outdir:default(`pwd`)] |