Ⅰ linux spawn命令
spawn是进入expect环境后才可以执行的expect内部命令。expect是一种脚本语言,它能够代替我们实现与终端的交互,我们不必再守候在电脑旁边输入密码,或是根据系统的输出再运行相应的命令。
如果没有装expect或者空乱直接在默认的SHELL下执行是找不到spawn命令的。所以不要用 “which spawn“之类的命令去找spawn命令。好比windows里的dir就是悔亏斗一个内部命令,这个命令由shell自带,用户无法找到一个dir.com或dir.exe的可执行文件。它主要的功能是给运行进程加个壳,用来传递交互指令。
(1)expect工具扩展阅读碧磨:
下面是一个能用来实现自动执行该命令的Expect脚本:
#!/usr/bin/expect
# Change a login shell to tcsh
set user [lindex $argv 0]
spawn chsh $user
expect "]:"
send "/bin/tcsh "
expect eof
exit
和其他脚本一样首行指定用来执行该脚本的命令程序,这里是/usr/bin/expect。程序第一行用来获得脚本的执行参数(其保存在数组$argv中,从0号开始是参数),并将其保存到变量user中。
第二个参数使用Expect的spawn命令来启动脚本和命令的会话,这里启动的是chsh命令,实际上命令是以衍生子进程的方式来运行的。
Ⅱ linux 怎么查看expect是否安装
你好,具体兆袜昌在:
Expect是一个免费的编程工具语言,用来实现自动和交互式任务进行通信,而无需人的干预。Expect的作者Don Libes在1990年开始编写Expect时对Expect做有如下定义:Expect是一个用来实现自动交互功能的软件套件 (Expect is a software suite for automating interactive tools)。系统管理员使用它可以创建脚本对命令或程序提供输入,而这些命令和程序是期望从终端(terminal)得到输入,一般来说这些输入都是手工进行输入的。 Expect则可以根据程序的提示模拟标准好世输入提供给程序需要的输入来实现交互程序执行。
简单来说就是脚本帮助你输入本该由你自己手动输入的信息。
安装:
[plain] view plain
-rw-r--r-- 1 ddd ddd 525572 2011-09-15 expect.tar.gz
-rw-r--r-- 1 ddd ddd 3641017 2011-09-15 tcl8.4.16-src.tar.gz
[plain] view plain
tar -xzvf解压
Expect需要Tcl编程语言的支持,要在系统上运行Expect必须首先安装族扒Tcl
安装tcl:
[plain] view plain
[ddd@hh zx]$ cd /home/zx/tcl8.4.16/unix
通过该命令可以查看安装参数:
[plain] view plain
[ddd@hh unix]$./configure --help
Usage: configure [options] [host]
Options: [defaults in brackets after descriptions]
Configuration:
--cache-file=FILE cache test results in FILE
--help print this message
--no-create do not create output files
--quiet, --silent do not print `checking...' messages
--version print the version of autoconf that created configure
Directory and file names:
--prefix=PREFIX install architecture-independent files in PREFIX
[/usr/local]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[same as prefix]
--bindir=DIR user executables in DIR [EPREFIX/bin]
--sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
--libexecdir=DIR program executables in DIR [EPREFIX/libexec]
--datadir=DIR read-only architecture-independent data in DIR
[PREFIX/share]
--sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data in DIR
[PREFIX/com]
--localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
--libdir=DIR object code libraries in DIR [EPREFIX/lib]
--includedir=DIR C header files in DIR [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
--infodir=DIR info documentation in DIR [PREFIX/info]
--mandir=DIR man documentation in DIR [PREFIX/man]
--srcdir=DIR find the sources in DIR [configure dir or ..]
--program-prefix=PREFIX prepend PREFIX to installed program names
--program-suffix=SUFFIX append SUFFIX to installed program names
--program-transform-name=PROGRAM
run sed PROGRAM on installed program names
Host type:
--build=BUILD configure for building on BUILD [BUILD=HOST]
--host=HOST configure for HOST [guessed]
--target=TARGET configure for TARGET [TARGET=HOST]
Features and packages:
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--x-includes=DIR X include files are in DIR
--x-libraries=DIR X library files are in DIR
--enable and --with options recognized:
--enable-man-symlinks use symlinks for the manpages
--enable-man-compression=PROG
compress the manpages with PROG
--enable-man-suffix=STRING
use STRING as a suffix to manpage file names
(default: tcl)
Ⅲ 一名优秀的Linux运维人员该掌握哪些工具
运维人员必须熟悉的运维工具汇总
某日受邀请参加了一个BBS活动,于是有了下面的内容。
下面是在linux网站运维方向老男孩最近几年常用的免费的开源软件,临时即兴想起来的,在这里和大家分享,希望给初学者指引一点路。
linux的世界真的很精彩,还没入门的朋友赶紧进来吧!
操作系统:Centos※,Ubuntu,Redhat※,suse,Freebsd
网站服务:nginx※,apache※,lighttpd,php※,tomcat※,resin※
数据 库:MySQL※,Mysql-proxy,MariaDB,PostgreSQL
DB中间件:MyCat,amoeba,MySQL-proxy
代理相关:lvs,keepalived,haproxy,nginx,apache,heartbeat(此行都是※)
网站缓存:squid※,nginx※,varnish
NOSQL库:memcached※,memcachedb,TokyoTyrant※,MongoDB※,Cassandra※,redis※,CouchDB
存储相关:Nfs※,Moosefs(mfs)※,Hadoop※,glusterfs※,lustre,FastDFS
版本管理:svn※,git※
监控报警:nagios※,cacti※,zabbix※,munin,hyperic,mrtg,graphite
域名解析:bind※,powerdns,dnsmasq※
同步软件:rsync※,inotify※,sersync※,drbd※,csync2,union,lsyncd,scp※
批量管理:ssh+rsync+sersync※,Saltstack※,expect※,puppet※,ansible,cfengine
虚拟 化:kvm※,xen※
云计 算:openstack※,docker,cloudstack
内网软件:iptables※,zebra※,iftraf,ntop※,tc※,iftop
邮件软件:qmail,posfix※,sendmail
远程拨号:openvpn※,pptp,openswan※,ipip※
统一认证:openldap(可结合微软活动目录)※
队列工具:ActiveMQ,RabbitMQ※,Metaq,MemcacheQ,Zeromq
打包发布:mvn※,ants※,jenkins※,svn
测试软件:ab,smokeping,siege,JMeter,Webbench,LoadRunner,http_load(都是※)
日志相关:syslog,rsyslog,Awstats,flume logstash scribe kafka,storm,ELK(Elasticsearch+Logstash+Kibana)DB代理:mysql-proxy,amoeba(更多还是程序实现读写分离)
搜索软件:Sphinx,Xapian(大公司会自己开发类似网络的小规模内部搜索引擎)
提示:
1)以上所有软件都是老男孩用过或测试过的。
2)带※的为老男孩最近几年用的比较多,可信任使用的。也是近年来linux运维的大众。
3)有了功能分类和软件名,大家有需求,可以按功能找软件直接G就知道了。
4)学习要有舍有得,什么都抓必然短时间都不会精,希望大家能抓重点,抓精髓,大众软件(带※)先熟练了,这是基础加提高,在研究小众软件(不带※),这是高手之路,最后在研究偏门的,世外高手之路,当然前提是先掌握前面的大众和小众。
5)当然还有一些没有大众开源的有一些也很棒,如审计堡垒机程序。
Ⅳ shell中 expect使用
send "pwd" 之后应该继续 expect 一个提示符,或者等待一个 timeout 的时间,然后send 一条命令 touch file1,如此继续。
不考虑 expect 练习的目的的话,完全这个任务最方便的是用 sudo 代替 su,可配置 sudo 执行你这个操作时不用密码。
Ⅳ 使用expect实现异机备份
简介: 建立在tcl基础上哪袭的一个工具,它可以让一些需要交互的任务自动化地完成。expect等待输出中输出特定的字符,通常是一个提示符,然后发送特定的响应。
例如我们需要文件自动念樱的异机备份,可用以下脚本仔缓丛配合定时任务来实现:
Ⅵ Linux运维人员必知必会工具汇总
领域 :工具名称
操作系统 :CentOS、Ubuntu、Redhat、suse、Freebsd
网站服务: nginx、apache、lighttpd、php、tomcat、resin
数据库: MySQL、MariaDB、PostgreSQL
DB中间件 :maxscale、MyCat、atlas、cobar、amoeba、MySQL-proxy
代理相关: lvs、keepalived、haproxy、nginx、heartbeat
网站缓存: squid、nginx、varnish
NoSQL库: Redis、CacheCloud、纳氏和Memcached、MongoDB、HBase、Cassandra、CouchDB
存储相关 :Nfs、FastDFS、Moosefs(mfs)、Ceph 、Hadoop、glusterfs、lustre
版本管理 :svn、git、gitlab、gogs
监控报警 :nagios、cacti、zabbix、munin、hyperic、mrtg、graphite
域名解析: bind、powerdns、dnsmasq
同步软件: scp、rsync、inotify、sersync、drbd
批量管理: SSH、Ansible、Saltstack、expect、puppet
虚拟化: kvm、xen
云计算: openstack、docker、k8s
内网软件: iptables、zebra、iftraf、ntop、tc、iftop
邮件软件: qmail、posfix、sendmail、zimbra
远程拨号: openvpn、pptp、openswan、ipip
统一认证: openldap
队列工具: ActiveMQ、RabbitMQ、核岩Metaq、MemcacheQ、Zeromq、kafka
打包发布: mvn、ants、Jenkins、Walle
测试软件: ab、JMeter、Webbench、LoadRunner、http_load、tcp
带宽测试 :smokeping
性能测试 ;dd、 fio(IOPS测试)、iozone(磁盘测试)
日志相关: rsyslog、Awstats、flume、storm、ELK(Elasticsearch+Logstash+Kibana)
搜索软件: Sphinx、Xapian、Solr
无人值守: rpm、yum(设计rpm包定制及yum仓库构建)
大数据: HDFS、Hive、Hbase、Zookeeper、Pig、Spark、Mahout、flume、sqoop
项目管理: Jira、Redmine
linux管理: 宝塔Linux面板
渗透测试工具: SQLMap、Webscan
开源邮箱: iRedmail、extmail、Zimbra
软件开发 :Sublime Text、Eclipse、Jetbrains
远程连接: putty、Xshell、SecureCRT、MobaXterm、TeamViewer、向日葵
在此为服务器运维人员推荐使用:宝塔面板 www.bt.cn
宝塔面板,近200个免费应用提供使用,如:网站管理、系统安全、系统监控、计划任务、文件管理、软件管洞盯理、一键部署等为服务器运维人员提供安全高效的完成服务器运维工作。
Ⅶ linux shell 中调用sceen 问题
screen优势在于,你可以远掘局程登陆linux后,打开screen 执行一个进程后,按CTRL+A+D可以离开,断开远程连接而不影响进程执行,如果想回来重新登陆后,输入screen -r 即可回来。
有一个基于expect包中的闹昌工具:kibitz(翻译成多管闲事)
可以实现两个登陆用户(可以是同一个用户,判弯让例如root)可以看到另外一个终端显示一样的输出,而且是实时的!
1、 需要安装tcl和expect两个软件包。
2、tar zxf expect-5.42.1.tar.gz
cp example/kibitz /usr/bin/
cp example/xkibitz /usr/bin/
3、用法
user01登陆后用 kibitz user02
有提示 Run: kibitz -19579
user02用kibitz -19579即可时实共享了