小沨的天空

  • 首页
  • 图床
  • 网盘
  • 赞助
私人小天地
谈天说地,学习笔记
  1. 首页
  2. Linux
  3. 正文

ubuntu下利用expect实现screen多窗口开机运行

2019年7月31日 4095点热度 0人点赞 1条评论

ubuntu下利用expect实现screen多窗口开机运行

1. expect的安装与使用

1.1. expect的安装与使用

是什么

expect 是用来进行自动化控制和测试的工具。主要是和交互式软件telnet ftp ssh 等进行自动化的交互。

如何安装

1.2. 检测是否安装

ls /usr/bin |grep expect

如果不存在,则进行安装

1.3.安装

apt-get install expect
ls /usr/bin |grep expect
autoexpect
expect
expect_autoexpect
expect_autopasswd
expect_cryptdir
expect_decryptdir
expect_dislocate
expect_ftp-rfc
expect_kibitz
expect_lpunlock
expect_mkpasswd
expect_multixterm
expect_passmass
expect_rftp
expect_rlogin-cwd
expect_timed-read
expect_timed-run
expect_tknewsbiff
expect_tkpasswd
expect_unbuffer
expect_weather
expect_xkibitz
expect_xpstat

wiki对于expect说明https://zh.wikipedia.org/wiki/Expect

2. 安装screen

apt-get install screen

screen用法这里不做过多的介绍,请大家google搜索

3. 利用expect实现screen多窗口运行

3.1. 建立start.sh开机运行

#!/usr/bin/env bash
screen_name1=$"baidu"
screen -dmS $screen_name1
cmd1=$"ping www.baidu.com";
screen -x -S $screen_name1 -p 0 -X stuff "$cmd1" #创建screen
screen -x -S $screen_name1 -p 0 -X stuff $'\n' #回车
# 嵌套expect
# send "\01" 模拟输入 ctrl-a 
# send "d" 模拟输入d  ctrl-a+d是挂起screen
/usr/bin/expect <<EOF
send "\01"
send "d"
expect eof
EOF

screen_name2=$"google"
screen -dmS $screen_name2
cmd2=$"ping www.baidu.com";
screen -x -S $screen_name2 -p 0 -X stuff "$cmd2"
screen -x -S $screen_name2 -p 0 -X stuff $'\n'
/usr/bin/expect <<EOF
send "\01"
send "d"
expect eof
EOF

测试脚本

sh start.sh

查看screen窗口

screen -ls
#输出文字,字样就成功启动
There is a screen on:
    168.baidu   (06/08/19 07:14:04) (Detached)
    158.google  (06/08/19 07:14:04) (Detached)
1 Socket in /run/screen/S-root.

3.2 创建stop.sh文件

#!/usr/bin/env bash
screen_name1=$"baidu"
screen -X -S $screen_name1 quit #退出screen

screen_name2=$"google"
screen -X -S $screen_name2 quit

3.3 crontab定时执行这两个脚本

crontab  -e

0 10 * * * /root/start.sh #每天早晨10点
30 23 * * * /root/stop.sh #每天晚上23.30

3.4 开机运行

设置开机启用,仅限ubuntu18版本

#首先检查rc-local是不是启动了,如果启动最后完全还要restart,这里的坑,sandy踩了半个小时
systemctl status rc-local.service

vim /lib/systemd/system/rc-local.service
#最下加入
[Install]
WantedBy=multi-user.target
Alias=rc-local.service

vim /etc/rc.local
#加入下面代码
#!/bin/bash
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
bash /root/start.sh
exit 0
#给予权限
chmod +x /etc/rc.local
#开启服务
systemctl enable rc-local
#启动服务并检查状态
sudo systemctl start rc-local.service
sudo systemctl status rc-local.service

#重新启动服务器
reboot

#检测服务器是不是已经启动
sudo systemctl status rc-local.service
#输出文字,字样就成功启动
Active: active (running) since Fri 2019-06-07 03:25:59 UTC; 19s ago
screen -ls
#输出文字,字样就成功启动
There is a screen on:
    168.baidu   (06/08/19 07:14:04) (Detached)
    158.google  (06/08/19 07:14:04) (Detached)
1 Socket in /run/screen/S-root.

寥寥君折腾实践经验所得,不接受其他转发,本站已经取得独立授权!:-)

标签: expect screen ubuntu 多窗口
最后更新:2019年7月31日

mikj

这个人很懒,什么都没留下

打赏 点赞
< 上一篇
下一篇 >

文章评论

  • repostone

    非技术的路过。

    2019年8月23日
    登录以回复
  • 您需要 登录 之后才可以评论
    站内搜索
    最新 热点 随机
    最新 热点 随机
    满5美元提现,每天签到和购物返现的网站 Win10蓝牙链接wifi热点网络和Win10使用蓝牙共享网络分享 Gravatar头像的镜像使用Cloudflare Workers反代自建 如何在论文中使用证据 acme申请google Public Certificate 免费ssl 证书应用LNMP Ubuntu的远程桌面环境使用Docker与Xfce Azure100美金使用开源的Azure 管理面板 网站Cloudflare使用CDN后如何获取前端真实客户IP Win10 共享文件夹(设置账户密码与终止所有连接) 戴尔PowerEdge R430设置RAID0 安装WINDOWS10
    Gravatar头像的镜像使用Cloudflare Workers反代自建Win10蓝牙链接wifi热点网络和Win10使用蓝牙共享网络分享满5美元提现,每天签到和购物返现的网站
    总算搞定工商银行商友卡大家别见笑. 如何在论文中使用证据 centos ,debian,ubuntu安装htop,加强版top Bo-Blog Database System Tips: MySQL Query Error(errno: 145) [分享]支付宝专享1分换5元天猫红包!速度呀 TransIP的Stack网盘使用WebDAV挂载到linux和win 豆瓣网络电台代码. uk2 comodo positivessl免费证书 BackLinks卖链接赚美元 ghs.google.com域名反向代理
    标签聚合
    debian linux php 升级 代码 月捐 安装 DirectAdmin ubuntu 免费 域名 LNMP 网盘 wordpress 系统 vps 插件 centos 服务器 Cloudflare
    分类
    • Linux
    • VPS服务器
    • windows
    • wordpress
    • 域名相关
    • 建站分享
    • 教程学习
    • 数据库类
    • 未分类
    • 资源分享
    友情链接
    • 豆博
    • 爱购啦
    • 2.int.ru
    • vzone
    • QQPCC
    • 朱志瑞
    • logdns.free.fr
    • 麦麦同学
    • 我喔喔喔
    • 午夜客
    • QQTM论坛
    • 死老鬼
    • 我的图库
    • 李子博客
    • 天下无鱼
    • 怪鸟博客
    • Shucheng Li
    • 夜狐
    • 轨迹博客
    • 小沨记事本
    • xiaofengsky.free.fr
    • 娃娃博客
    • 撸羊毛
    • 陈否否
    • 寥寥后花园
    • semnew
    • 傻子-跸西的blog
    • 回到未来博客
    AD

    COPYRIGHT © 2022 Xinai.De. ALL RIGHTS RESERVED.@ 网站运行:@ 服务器运行状态

    Theme Kratos Made By Seaton Jiang