简单的ssh脚本怎么编写?

sh/bash/dash/ksh/zsh等Shell脚本
jsjcjsjc
帖子: 152
注册时间: 2007-03-03 13:36

简单的ssh脚本怎么编写?

#1

帖子 jsjcjsjc » 2016-04-28 22:23

vsp新手经常要重装系统,打一些重复的命令。。。想请教一下怎么编写简单的ssh脚本,不然经常等着make install等费时间的
比如下面的命令,
无非就是等待执行下一段命令,要不写一些代码到文件中。。
求简单的教程,或者哪个木板可以抄一下 :Grimace
==================
apt-get update
apt-get install build-essential autoconf libtool libssl-dev git
git clone https://github.com/madeye/shadowsocks-libev.git

cd shadowsocks-libev
./configure --prefix=/usr
make && make install

mkdir -p /etc/shadowsocks-libev
cp ./debian/shadowsocks-libev.init /etc/init.d/shadowsocks-libev
cp ./debian/shadowsocks-libev.default /etc/default/shadowsocks-libev
cp ./debian/config.json /etc/shadowsocks-libev/config.json
chmod +x /etc/init.d/shadowsocks-libev

vi /etc/shadowsocks-libev/config.json
{
"server":"cc.cc.cc.cc",
"server_port":5216,
"local_port":1080,
"password":"xxxxxxxx",
"timeout":60,
"method":"aes-256-cfb"
}

/etc/init.d/shadowsocks-libev stop
/etc/init.d/shadowsocks-libev start


vi /etc/rc.local
/etc/init.d/shadowsocks-libev start 添加在exit那一行之前
=============================================
rosynirvana
帖子: 893
注册时间: 2011-02-14 17:46

Re: 简单的ssh脚本怎么编写?

#2

帖子 rosynirvana » 2016-04-28 22:27

shadowsocks.org 源里面有的,不用自己编译

https://shadowsocks.org/en/download/servers.html
头像
kashu
帖子: 451
注册时间: 2014-02-07 17:31
系统: Xubuntu 14.04.5 64位

Re: 简单的ssh脚本怎么编写?

#3

帖子 kashu » 2016-04-28 22:31

rosynirvana 写了:shadowsocks.org 源里面有的,不用自己编译

https://shadowsocks.org/en/download/servers.html
我猜想,他之所以想编译安装,可能是想尽可能用到最新版本的shadowsocks(源里面的版本有时可能未必是最新的)


OS: Xubuntu 14.04.5 LTS 64-bit
CPU: Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
RAM: 12GB DDR3 1333MHz
128GB SSD + 2TB HDD
神舟优雅A480B-I5B 购于 2012.08

YouTube频道:https://www.youtube.com/channel/UCGSPXZ ... DuDYX8L6Qg
头像
vickycq
帖子: 4507
注册时间: 2011-03-20 13:12
系统: Debian
来自: 山东省寿光县
联系:

Re: 简单的ssh脚本怎么编写?

#4

帖子 vickycq » 2016-04-28 22:49

rosynirvana 写了:shadowsocks.org 源里面有的,不用自己编译
https://shadowsocks.org/en/download/servers.html
好像 Debian/Ubuntu 源里的 sslocal 不支持 rc4-md5。很多买来的 ss 只支持 rc4-md5?
抱歉没看清主贴内容
上次由 vickycq 在 2016-04-28 23:03,总共编辑 1 次。
Debian 中文论坛 - forums.debiancn.org
欢迎所有 Debian GNU/Linux 用户
rosynirvana
帖子: 893
注册时间: 2011-02-14 17:46

Re: 简单的ssh脚本怎么编写?

#5

帖子 rosynirvana » 2016-04-28 22:54

vickycq 写了:
rosynirvana 写了:shadowsocks.org 源里面有的,不用自己编译
https://shadowsocks.org/en/download/servers.html
好像 Debian/Ubuntu 源里的 sslocal 不支持 rc4-md5。很多买来的 ss 只支持 rc4-md5?
他在vps上装ss,应该是要自己搭Server
头像
vickycq
帖子: 4507
注册时间: 2011-03-20 13:12
系统: Debian
来自: 山东省寿光县
联系:

Re: 简单的ssh脚本怎么编写?

#6

帖子 vickycq » 2016-04-28 23:02

rosynirvana 写了: 他在vps上装ss,应该是要自己搭Server
抱歉,没看清楚主贴内容
Debian 中文论坛 - forums.debiancn.org
欢迎所有 Debian GNU/Linux 用户
头像
vickycq
帖子: 4507
注册时间: 2011-03-20 13:12
系统: Debian
来自: 山东省寿光县
联系:

Re: 简单的ssh脚本怎么编写?

#7

帖子 vickycq » 2016-04-28 23:09

绝大多数命令可以直接写进脚本
有两个要点:

1. 避免 apt-get 询问 Y/N,加 -y 参数;

2. 编辑文件添加内容:
2-1. 对于复杂内容如 ss 配置文件可事先将内容写进其它文件,再在脚本中复制到对应位置;
2-2. 添加 /etc/init.d/shadowsocks-libev start 到 exit 0 之前:

代码: 全选

sudo sed -i "/^exit 0/i\/etc\/init.d\/shadowsocks-libev start" /etc/rc.local
Debian 中文论坛 - forums.debiancn.org
欢迎所有 Debian GNU/Linux 用户
rosynirvana
帖子: 893
注册时间: 2011-02-14 17:46

Re: 简单的ssh脚本怎么编写?

#8

帖子 rosynirvana » 2016-04-28 23:18

装好后会有个启动脚本用的,不用写rc.local
apt install shadowsocks-libev后只要改配置文件然后service shadowsocks-libev restart就好了
头像
vickycq
帖子: 4507
注册时间: 2011-03-20 13:12
系统: Debian
来自: 山东省寿光县
联系:

Re: 简单的ssh脚本怎么编写?

#9

帖子 vickycq » 2016-04-28 23:24

rosynirvana 写了:装好后会有个启动脚本用的,不用写rc.local
apt install shadowsocks-libev后只要改配置文件然后service shadowsocks-libev restart就好了
正解。

“添加 /etc/init.d/shadowsocks-libev start 到 exit 0 之前” 多余。具体要看你 VPS 的操作系统版本。如果是使用 upstart 的 Ubuntu 版本(低于或等于 14.10),按照 upstart 的管理方式管理自启即可。
Debian 中文论坛 - forums.debiancn.org
欢迎所有 Debian GNU/Linux 用户
jsjcjsjc
帖子: 152
注册时间: 2007-03-03 13:36

Re: 简单的ssh脚本怎么编写?

#10

帖子 jsjcjsjc » 2016-04-29 11:28

vickycq 写了:绝大多数命令可以直接写进脚本
有两个要点:

1. 避免 apt-get 询问 Y/N,加 -y 参数;

2. 编辑文件添加内容:
2-1. 对于复杂内容如 ss 配置文件可事先将内容写进其它文件,再在脚本中复制到对应位置;
2-2. 添加 /etc/init.d/shadowsocks-libev start 到 exit 0 之前:

代码: 全选

sudo sed -i "/^exit 0/i\/etc\/init.d\/shadowsocks-libev start" /etc/rc.local
非常感谢
创建/etc/shadowsocks-libev/config.json,添加内容这样可以吗?
rm /etc/shadowsocks-libev/config.json
cat > /etc/shadowsocks-libev/config.json<<-EOF
{
"server":"0.0.0.0",
"server_port":${shadowsocksport},
"local_address":"127.0.0.1",
"local_port":1080,
"password":"${shadowsockspwd}",
"timeout":600,
"method":"aes-256-cfb"
}
EOF

最后还有一个需求就是vi /etc/sysctl.conf,将net.ipv4.ip_forward=1一行前面的#号去掉。这个有办法吗
jsjcjsjc
帖子: 152
注册时间: 2007-03-03 13:36

Re: 简单的ssh脚本怎么编写?

#11

帖子 jsjcjsjc » 2016-04-29 11:34

关于普通命令该怎么处理,3种方案啊有区别吗。。。非常感谢您的帮助


有人说是这样用 ; 隔开
apt-get update;apt-get install build-essential autoconf libtool libssl-dev git;git clone GitHub - shadowsocks/shadowsocks-libev: libev port of shadowsocks;cd shadowsocks-libev;./configure --prefix=/usr;make && make install

也有人说是这样,直接一行一行写下来
apt-get update
apt-get install build-essential autoconf libtool libssl-dev git
git clone GitHub - shadowsocks/shadowsocks-libev: libev port of shadowsocks
cd shadowsocks-libev
./configure --prefix=/usr
make && make install

还有人说是这样用 && 隔开
apt-get update && apt-get install build-essential autoconf libtool libssl-dev git && git clone GitHub - shadowsocks/shadowsocks-libev: libev port of shadowsocks && cd shadowsocks-libev && ./configure --prefix=/usr && make && make install
头像
vickycq
帖子: 4507
注册时间: 2011-03-20 13:12
系统: Debian
来自: 山东省寿光县
联系:

Re: 简单的ssh脚本怎么编写?

#12

帖子 vickycq » 2016-04-29 11:41

jsjcjsjc 写了: 最后还有一个需求就是vi /etc/sysctl.conf,将net.ipv4.ip_forward=1一行前面的#号去掉。这个有办法吗
方法一 直接用 sysctl 命令
方法二

代码: 全选

sudo sed -i '/net.ipv4.ip_forward/s/^# *//' /etc/sysctl.conf 
上次由 vickycq 在 2016-04-29 11:44,总共编辑 1 次。
Debian 中文论坛 - forums.debiancn.org
欢迎所有 Debian GNU/Linux 用户
头像
vickycq
帖子: 4507
注册时间: 2011-03-20 13:12
系统: Debian
来自: 山东省寿光县
联系:

Re: 简单的ssh脚本怎么编写?

#13

帖子 vickycq » 2016-04-29 11:43

jsjcjsjc 写了:关于普通命令该怎么处理,3种方案啊有区别吗。。。非常感谢您的帮助
有人说是这样用 ; 隔开
也有人说是这样,直接一行一行写下来
还有人说是这样用 && 隔开
第一个和第二个一样,用分号只是为了合并到一行中。效果都是 上一个命令结束后才会执行下一个。
用 && 的效果是 上一个命令返回 0 (成功执行) 才会执行下一个。
用 & 的效果是 不等上一个命令结束就会执行下一个。
Debian 中文论坛 - forums.debiancn.org
欢迎所有 Debian GNU/Linux 用户
jsjcjsjc
帖子: 152
注册时间: 2007-03-03 13:36

Re: 简单的ssh脚本怎么编写?

#14

帖子 jsjcjsjc » 2016-04-29 12:33

vickycq 写了:
jsjcjsjc 写了:关于普通命令该怎么处理,3种方案啊有区别吗。。。非常感谢您的帮助
有人说是这样用 ; 隔开
也有人说是这样,直接一行一行写下来
还有人说是这样用 && 隔开
第一个和第二个一样,用分号只是为了合并到一行中。效果都是 上一个命令结束后才会执行下一个。
用 && 的效果是 上一个命令返回 0 (成功执行) 才会执行下一个。
用 & 的效果是 不等上一个命令结束就会执行下一个。
太感谢啦,自己做脚本去
:em05
jsjcjsjc
帖子: 152
注册时间: 2007-03-03 13:36

Re: 简单的ssh脚本怎么编写?

#15

帖子 jsjcjsjc » 2016-05-03 20:47

vickycq 写了:
jsjcjsjc 写了:关于普通命令该怎么处理,3种方案啊有区别吗。。。非常感谢您的帮助
有人说是这样用 ; 隔开
也有人说是这样,直接一行一行写下来
还有人说是这样用 && 隔开
第一个和第二个一样,用分号只是为了合并到一行中。效果都是 上一个命令结束后才会执行下一个。
用 && 的效果是 上一个命令返回 0 (成功执行) 才会执行下一个。
用 & 的效果是 不等上一个命令结束就会执行下一个。
不好意思啊,时候跳出这个怎么解决?有办法全部安装默认设置吗?
命令式这样的 apt-get -y install build-essential autoconf libtool libssl-dev git
123.jpg
回复