Skip to main content

Posts

Featured

【Linux命令/Mac适用】使用shell script实现ssh登录远程主机并执行命令

为了能编写脚本跟远程Linux主机交互,首先要安装expect 对于Mac用户来说,通过homebrew来安装比较方便 brew install expect 安装好之后,就可以写脚本文件了,用nano编辑即可 nano sshvpn .sh sshvpn.sh内容如下: #!/usr/bin/expect set timeout 60 spawn ssh root@157.230.152.7 expect "password:" send "登录密码\r" expect ":~#" send "ssserver -c /etc/shadowsocks.json -d start\r" expect eof 可以理解为,写一个脚本模拟交互的过程: 用spawn打开一个ssh进程 expect "password:" 可以理解为等屏幕出现"password:” 时, 执行下面的语句,send可以理解为模拟键盘输入,也就是输入登录密码然后按回车 成功登录之后,等屏幕显示":~#”之后,就可以输入命令了: ssserver -c /etc/shadowsocks.json -d start\r 该命令将启动代理服务器 脚本编辑完毕后,保存退出,并使用chmod命令赋予执行的权限 chmod + x sshvpn .sh 然后就可以执行该脚本文件,实现【一键启动远程代理服务器】 ./sshvpn.sh 注意:自己写的脚本,用 ./ 来执行! ./代表当前目录,由于自己编写的脚本就在当前目录下,而当前目录不在环境变量中,所以得输入包含完整目录的文件名 环境变量PATH,里面包含了许多目录,这些目录下的可执行文件就无需输入完整路径来执行 ref:  https://zhidao.baidu.com/question/549373418.html 类似地,可以再写一个【一键停止远程代理服务器】,sshvpn_stop.sh 只要把start改成stop即可 #!/usr/bin/expect set timeout 60 spawn s

Latest Posts

【Linux命令/Mac适用】crontab(定时执行任务)

【网页制作-jquery/php】"key-value" 网页书签(php与js之间的数据传递)