1. 远程连接

1.1. 连接远程服务器

ssh root@192.168.163.129

1.2. iterm 添加连接文件

  • 可以在~/.ssh/ 下面写一个脚本, ~/.ssh/server-test

    #!/usr/bin/expect -f
    set user root
    set host 192.168.1.110
    set password 123456
    set timeout -1
    
    spawn ssh $user@$host
    expect "*assword:*"
    send "$password\r"
    interact
    expect eof
    
  • iTerm2 的Profiles 新建一个profileCommand 里填入 expect ~/.ssh/server-test

2. 文件传输

2.1. 1、上传本地文件到服务器

scp /path/filename username@servername:/path/

例如scp /var/www/test.php root@192.168.0.101:/var/www/ 把本机/var/www/目录下的test.php文件上传到192.168.0.101这台服务器上的/var/www/目录中

2.2. 2、从服务器上下载文件

下载文件我们经常使用wget,但是如果没有http服务,如何从服务器上下载文件呢?

scp username@servername:/path/filename /var/www/local_dir(本地目录)

例如scp root@192.168.0.101:/var/www/test.txt192.168.0.101上的/var/www/test.txt 的文件下载到/var/www/local_dir(本地目录)

2.3. 3、从服务器下载整个目录

scp -r username@servername:/var/www/remote_dir/(远程目录) /var/www/local_dir(本地目录)

例如:scp -r root@192.168.0.101:/var/www/test /var/www/

2.4. 4、上传目录到服务器

scp -r local_dir username@servername:remote_dir

例如:scp -r test root@192.168.0.101:/var/www/ 把当前目录下的test目录上传到服务器的/var/www/ 目录

3. Bash 脚本连接

  • 执行多条命令

    #!/bin/bash
    ssh user@remoteNode << eeooff
    cd /home
    touch abcdefg.txt
    exit
    eeooff
    echo done!
    
    #!/bin/bash  
    
    #变量定义  
    ip_array=("192.168.1.1" "192.168.1.2" "192.168.1.3")  
    user="test1"  
    remote_cmd="/home/test/1.sh"  
    
    #本地通过ssh执行远程服务器的脚本  
    for ip in ${ip_array[*]}  
    do  
        if [ $ip = "192.168.1.1" ]; then  
            port="7777"  
        else  
            port="22"  
        fi  
        ssh -t -p $port $user@$ip "remote_cmd"  
    done