服务器间通信笔记。
1. 远程服务器的连接
连接远程服务器
1 | sftp remote_user@remote_host |
无需密码进行通讯
建立SSH的信任关系,需要创建公私钥对。具体讲解戳这里。
- 首先,生成生成公私钥对。命令行输入
1 | ssh-keygen -t rsa |
其中三个需要确认的环节,直接Enter选择默认即可。
1 | Enter file in which to save the key (/home/nfer/.ssh/id_rsa): |
-
将User在A主机的公钥加入到对方的ssh的信任公钥列表中
将刚才创建的/.ssh/id_rsa.pub文件中的内容拷贝添加到B主机上的/.ssh/authorized_keys文件中(如果没有则创建一个),这个时候就建立了一条A–>B的信任关系。注意这个信任关系是有方向性的,如果要建立从B–>A的信任关系,则操作步骤和上面的类似,只不过要反过来。
建立好信任关系后,这个时候使用任何ssh相关的工具则都无需输入远端的登陆密码(如果在创建公私钥对时输入了密码,那么这个时候还需要输入这个密码才能使用公私钥对)。
2.通讯操作命令
从远程服务器拉取文件
1 | get remoteFile [newName] |
从本地上传文件到服务器
1 | put localFile remoteDirectory |
切换目录、建立文件夹
操作远程机
1 | cd testDirectory |
操作本机
在每个命令前添加 l
。(注意是L的小写)
1 | lcd directory |
运行Shell指令
使用 ! 可以直接运行 Shell 中的指令。
1 | !cd ../www/wwwroot/OnlineDemo |
3.远程操控服务器的cmd
因为sftp是一个文件传输系统,我发现其无法实现激活环境、运行sh脚本等操作,于是改用ssh连接。
1 | ssh root@47.107.33.64 "/www/wwwroot/OnlineDemo/cmd.sh" |
cmd里面写上运行python的指令(初步构想是,一个类型一个sh,里面是对应python指令。)
注意!!因为是远程连接,调用文件时所在目录全都是服务器的根目录,所以cmd里python文件的目录、python文件里各种目录,都要写成绝对路径。否则会遭遇不幸…
Sample:
1 | # cmd.sh |
1 | # hello.py |
激活环境
1 |
|
1 | 安装lftp |