使用Shell执行远端命令

用户在 Shell 模式下或在 Javascript 脚本中,需要执行远端服务器的 Shell 命令时,可使用 Ssh 命令执行 shell 命令。

  • 用户启动 Shell 模式后,使用 Ssh 命令连接远端服务器,在远端服务器创建一个文本文件,然后取回到本地:
  1. $ /opt/sequoiadb/bin/sdb // 启动 shell 模式
  2. Welcome to SequoiaDB shell!
  3. help() for help, Ctrl+c or quit to exit
  4. > var ssh = new Ssh( "BDP-SDB2", "sdbadmin", "sdbadmin", 22 ) // 连接远端服务器
  5. Takes 0.213093s.
  6. > ssh.exec("pwd") // 获取远端路径
  7. /home/sdbadmin
  8. Takes 0.120320s.
  9. > ssh.exec("ls -l") // 获取远端目录文件清单
  10. total 0
  11. Takes 0.036118s.
  12. > ssh.exec( 'echo "Hello i am SeqouiaDB" > helloword.txt') // 在远端服务器创建文件
  13. Takes 0.079655s.
  14. > ssh.exec("ls -l helloword.txt")
  15. total 1
  16. -rw-r--r--. 1 sdbadmin sdbadmin_group 21 Mar 14 01:49 helloword.txt
  17. Takes 0.016682s.
  18. > ssh.pull( "helloword.txt", "helloword.txt" ) // 将远端文件取回本地
  19. Takes 0.065645s.
  20. > quit // 退出 shell 模式
  21. $ ls -l helloword.txt
  22. -rw-r-----. 1 sdbadmin sdbadmin_group 21 Mar 14 02:01 helloword.txt
  23. $ cat helloword.txt
  24. Hello i am SeqouiaDB

Note:

在 shell 模式下,执行 Ssh.help() 可查看更多 Ssh 命令参数

  • 用户在使用 Javascript 脚本时,也可通过 Ssh 命令来执行 Shell 命令。例如,将上文执行逻辑固化到 Javascript 脚本中:
  1. function createAndgetRemoteFile(){
  2. var ssh = new Ssh( "BDP-SDB2", "sdbadmin", "sdbadmin", 22 );
  3. var note = ssh.exec("pwd");
  4. println("pwd: " + note);
  5. var note = ssh.exec("ls -l");
  6. println("ls -l: " + note);
  7. ssh.exec( 'echo "Hello i am SeqouiaDB" > helloword.txt');
  8. var note = ssh.exec("ls -l helloword.txt");
  9. println("ls -l helloword.txt: " + note);
  10. ssh.pull( "helloword.txt", "helloword.txt" );
  11. }
  12. function main(){
  13. createAndgetRemoteFile();
  14. }
  15. main();

Note: