Ⅰ 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即可時實共享了