• 每天进步一点点!

文章分类

推荐网站

常用手册

linux expect spawn 用法小记【转载】

使用expect实现自动登录的脚本,网上有很多,可是都没有一个明白的说明,初学者一般都是照抄、收藏。可是为什么要这么写却不知其然。本文用一个最短的例子说明脚本的原理。 

脚本代码如下:

#!/usr/bin/expect 
set timeout 30 
spawn ssh -l username 192.168.1.1 
expect "password:" 
send "ispass\r" 
interact 

 

  1. [#!/usr/bin/expect] 

  这一行告诉操作系统脚本里的代码使用那一个shell来执行。这里的expect其实和linux下的bash、windows下的cmd是一类东西。 

  注意:这一行需要在脚本的第一行。 

  2. [set timeout 30] 

  基本上认识英文的都知道这是设置超时时间的,现在你只要记住他的计时单位是:秒 

  3. [spawn ssh -l username 192.168.1.1] 

  spawn是进入expect环境后才可以执行的expect内部命令,如果没有装expect或者直接在默认的SHELL下执行是找不到spawn命令的。所以不要用 “which spawn“之类的命令去找spawn命令。好比windows里的dir就是一个内部命令,这个命令由shell自带,你无法找到一个dir.com 或 dir.exe 的可执行文件。 

  它主要的功能是给ssh运行进程加个壳,用来传递交互指令。 

类别:Linux | 浏览(105) | 评论(0) | 阅读全文>>

Crontab的格式【转载】

第1列分钟1~59

第2列小时1~23(0表示子夜)

第3列日1~31

第4列月1~12

第5列星期0~6(0表示星期天)

第6列要运行的命令

 

下面是crontab的格式:

分 时 日 月 星期 要运行的命令

 

这里有crontab文件条目的一些例子:

 

30 21 * * * /usr/local/apache/bin/apachectl restart

上面的例子表示每晚的21:30重启apache。

 

45 4 1,10,22 * * /usr/local/apache/bin/apachectl restart

上面的例子表示每月1、10、22日的4 : 45重启apache。

 

10 1 * * 6,0 /usr/local/apache/bin/apachectl restart

上面的例子表示每周六、周日的1 : 10重启apache。

 

0,30 18-23 * * * /usr/local/apache/bin/apachectl restart

上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。

 

0 23 * * 6 /usr/local/apache/bin/apachectl restart

上面的例子表示每星期六的11 : 00 pm重启apache。

 

* */1 * * * /usr/local/apache/bin/apachectl restart

每一小时重启apache

 

* 23-7/1 * * * /usr/local/apache/bin/apachectl restart

晚上11点到早上7点之间,每隔一小时重启apache

 

0 11 4 * mon-wed /usr/local/apache/bin/apachectl restart

每月的4号与每周一到周三的11点重启apache

类别:Linux | 浏览(84) | 评论(0) | 阅读全文>>

SSH SCP Rsync 通过认证方式连接服务器【原创】

有两台服务器,服务器A(10.10.252.158)和服务器B(10.10.252.178)。

现在想在服务器A上通过SSH连接服务器B,或通过SCP、Rsync向服务器B传输文件。但这三种情况下都需要用户提供服务器B的用户名和密码,有些情况下用户可能需要在服务器A上直接通过SCP或Rsync向服务器B上传输文件,而不方便输入服务器B的用户名或密码(比如在计划任务cron中),这是可以使用认证方式连接服务器B,具体方法如下。

 

(1)以root用户登录服务器A,在服务器A的终端上输入:

ssh-keygen -t rsa

 

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa): (回车)

Created directory '/root/.ssh'.

Enter passphrase (empty for no passphrase): (回车)

Enter same passphrase again: (回车)

 

这时在/root 目录下生成一个.ssh的文件夹,进入此文件夹,里面有两个文件:id_rsa  id_rsa.pub

 

(2)以root用户登录服务器B,将id_rsa.pub(公钥)文件拷贝到服务器B的/root/.ssh 目录下(如果没有这个目录则创建之)

scp 10.10.252.158:/root/.ssh/id_rsa.pub /root/.ssh/

 

(3)在服务器B上,将服务器A传输过来的 id_rsa.pub 重命名为 authorized_keys

mv /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys

 

类别:Linux | 浏览(166) | 评论(0) | 阅读全文>>

linux下修改IP地址【原创】

IP地址、子网掩码:

vim /etc/sysconfig/network-scripts/ifcfg-eth0

 

DEVICE=eth0

BOOTPROTO=static

ONBOOT=yes

HWADDR=00:0c:29:3e:cd:97 #硬件ID不可修改

NETMASK=255.255.255.0

IPADDR=10.10.252.178

NETWORK=10.10.252.0

 

 

网关:

vim  /etc/sysconfig/network

 

NETWORKING=yes

NETWORKING_IPV6=no

HOSTNAME=localhost.localdomain

GATEWAY=10.10.252.1

 

DNS:

vim /etc/resolv.conf

 

 

nameserver 219.232.48.61

nameserver 8.8.4.4

search localdomain

 

类别:Linux | 浏览(104) | 评论(0) | 阅读全文>>

Ubuntu源码安装LAMP环境【原创】

 

(1).安装libxml2

cd libxml2-2.7.8/

./configure --prefix=/usr/local/libxml2

make && make install

 

(2).安装libmcrypt

cd ../libmcrypt-2.5.8/

./configure --prefix=/usr/local/libmcrypt

 

出错: configure: error: C++ compiler cannot create executables See `config.log' for more details.

解决方法:apt-get install g++

 

./configure --prefix=/usr/local/libmcrypt

make && make install

 

(3).安装zlib

cd ../zlib-1.2.5/

./configure --prefix=/usr/local/zlib

make && make install

 

(4)安装libpng

cd ../libpng-1.5.5/

./configure --prefix=/usr/local/libpng

 

出错:configure: error: zlib not installed

解决方法:重新安装zlib到系统

 

cd ../zlib-1.2.5/

./configure

make && make install

 

cd ../libpng-1.5.5/

./configure --prefix=/usr/local/libpng

make && make install

 

(5)安装jpeg8

cd ../jpeg-8b/

./configure --prefix=/usr/local/jpeg8/ --enable-shared --enable-static

make && make install

 

(6)安装freetype

cd ../freetype-2.4.5/

./configure --prefix=/usr/local/freetype 

 

类别:Linux | 浏览(283) | 评论(0) | 阅读全文>>