searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

轻量级一键自动发布脚本的方法

2023-05-17 02:43:59
47
0

一、编写一个shell脚本,内部使用expect+spawn实现远程登陆和操作其他主机的功能。

#从文件列表中获取ip,挨个处理
cat $ip_path_file | while read line
do
    ip_addr=$line
    #上传文件到指定目录下
    scp $shell_script $user_name@$ip_addr:$user_dir
    #进入目标主机操作
    deal_script $ip_addr
done

function deal_script()
{
    my_ip_addr=$1
#先打包,再scp
expect <<-EOF
set timeout -1
spawn ssh $my_ip_addr
expect "]*"
send "sudo -i \r"
expect "]*"
send "cp $shell_script ${shell_dir}/ \r"
expect "]*"
send "cd ${shell_dir} \r"
expect "]*"
send "chown root:root $shell_script_file_name \r"
expect "]*"
send "nohup sh $shell_script_file_name $shell_params $my_ip_addr > /dev/null 2>&1 & \r"
expect "]*"
send "exit\r"
expect "]*"
send "exit\r"
expect eof
EOF
}

此功能包含了远程登陆、拷贝程序或脚本到远程主机上、赋权、后台启动程序或脚本、最后退出。

二、详细说明

1、shell发布脚本程序:负责读取mysql数据表,然后与各个需要发布的主机交互,异步发布程序、执行程序、获取发布和执行结果,根据seq_id登记最终执行结果,最后查看数据库中的表即可知道发布和执行结果;

2、expect模块功能:expect是一个自动化交互套件,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信,用于主主机与其他主机远程交互的中间命令;

3、ip列表ip_path_file 可以存放在本地文件中。

0条评论
0 / 1000
康****彬
9文章数
0粉丝数
康****彬
9 文章 | 0 粉丝
原创

轻量级一键自动发布脚本的方法

2023-05-17 02:43:59
47
0

一、编写一个shell脚本,内部使用expect+spawn实现远程登陆和操作其他主机的功能。

#从文件列表中获取ip,挨个处理
cat $ip_path_file | while read line
do
    ip_addr=$line
    #上传文件到指定目录下
    scp $shell_script $user_name@$ip_addr:$user_dir
    #进入目标主机操作
    deal_script $ip_addr
done

function deal_script()
{
    my_ip_addr=$1
#先打包,再scp
expect <<-EOF
set timeout -1
spawn ssh $my_ip_addr
expect "]*"
send "sudo -i \r"
expect "]*"
send "cp $shell_script ${shell_dir}/ \r"
expect "]*"
send "cd ${shell_dir} \r"
expect "]*"
send "chown root:root $shell_script_file_name \r"
expect "]*"
send "nohup sh $shell_script_file_name $shell_params $my_ip_addr > /dev/null 2>&1 & \r"
expect "]*"
send "exit\r"
expect "]*"
send "exit\r"
expect eof
EOF
}

此功能包含了远程登陆、拷贝程序或脚本到远程主机上、赋权、后台启动程序或脚本、最后退出。

二、详细说明

1、shell发布脚本程序:负责读取mysql数据表,然后与各个需要发布的主机交互,异步发布程序、执行程序、获取发布和执行结果,根据seq_id登记最终执行结果,最后查看数据库中的表即可知道发布和执行结果;

2、expect模块功能:expect是一个自动化交互套件,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信,用于主主机与其他主机远程交互的中间命令;

3、ip列表ip_path_file 可以存放在本地文件中。

文章来自个人专栏
CDN网关
6 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0