一,export的命令详解
expect 的核心是 spawn expect send set
spawn 调用要执行的命令
expect 等待命令提示信息的出现,也就是捕捉用户输入的提示
send 发送需要交互值,代替用户手动输入的内容
set 设置变量值
set timeout 60 60秒超时
set timeout -1 永不超时
interact 执行完成后保持交互状态。
expect eof 与spawn对应表示捕捉终端输出信息终止。
expect 脚本必须以interact或expect eof结束,一般执行自动化脚本任务通常使用expect eof
二,确认是否安装expect
#rpm -qa |grep expect
#yum install expect -y 进行安装操作
三,查看安装expect后的路径
#which expect
/usr/bin/expect
四,生产环境下实例操作
(定时拷贝另一台服务器的相关软件)
#vim /home/project_backup.sh
#!/bin/sh
# project_backup
. /etc/profile #如不提示环境变量的问题,可以不加这两行
. ~/.bash_profile #若提示环境变量的问题,安装环境变量后,添加该两行
dateTime=`date +%Y-%m-%d`
#name=BJDBbackup_`date +%Y-%m-%d`
expect -c "
set timeout -1;
spawn /usr/bin/scp -r -P 62222 /home/tmmma_bak/$dateTime.tar.gz [email protected]:/home/tmmmabak;
expect {
*password: { send \密码\r\ }
};
expect eof;
"
加入计划任务
#crontab -e
* 3 * * * /home/project_backup.sh
注:使用中出现的问题
1)运行交互脚本时,不能执行成功
查看环境变量的问题,安装环境变量后,进行添加