使用Shell执行远端命令
用户在 Shell 模式下或在 Javascript 脚本中,需要执行远端服务器的 Shell 命令时,可使用 Ssh 命令执行 shell 命令。
- 用户启动 Shell 模式后,使用 Ssh 命令连接远端服务器,在远端服务器创建一个文本文件,然后取回到本地:
$ /opt/sequoiadb/bin/sdb // 启动 shell 模式
Welcome to SequoiaDB shell!
help() for help, Ctrl+c or quit to exit
> var ssh = new Ssh( "BDP-SDB2", "sdbadmin", "sdbadmin", 22 ) // 连接远端服务器
Takes 0.213093s.
> ssh.exec("pwd") // 获取远端路径
/home/sdbadmin
Takes 0.120320s.
> ssh.exec("ls -l") // 获取远端目录文件清单
total 0
Takes 0.036118s.
> ssh.exec( 'echo "Hello i am SeqouiaDB" > helloword.txt') // 在远端服务器创建文件
Takes 0.079655s.
> ssh.exec("ls -l helloword.txt")
total 1
-rw-r--r--. 1 sdbadmin sdbadmin_group 21 Mar 14 01:49 helloword.txt
Takes 0.016682s.
> ssh.pull( "helloword.txt", "helloword.txt" ) // 将远端文件取回本地
Takes 0.065645s.
> quit // 退出 shell 模式
$ ls -l helloword.txt
-rw-r-----. 1 sdbadmin sdbadmin_group 21 Mar 14 02:01 helloword.txt
$ cat helloword.txt
Hello i am SeqouiaDB
Note:
在 shell 模式下,执行 Ssh.help() 可查看更多 Ssh 命令参数
- 用户在使用 Javascript 脚本时,也可通过 Ssh 命令来执行 Shell 命令。例如,将上文执行逻辑固化到 Javascript 脚本中:
function createAndgetRemoteFile(){
var ssh = new Ssh( "BDP-SDB2", "sdbadmin", "sdbadmin", 22 );
var note = ssh.exec("pwd");
println("pwd: " + note);
var note = ssh.exec("ls -l");
println("ls -l: " + note);
ssh.exec( 'echo "Hello i am SeqouiaDB" > helloword.txt');
var note = ssh.exec("ls -l helloword.txt");
println("ls -l helloword.txt: " + note);
ssh.pull( "helloword.txt", "helloword.txt" );
}
function main(){
createAndgetRemoteFile();
}
main();
Note:
- 执行 Javascript 脚本可参照使用 Shell 执行脚本。
- Javascript 语法介绍可参考 Javascript 语法