Linux下后台程序完成自动输入密码等交互行为的例子
今天要开发一个定时任务,然后加入cron列表中。但是有个问题摆在眼前,脚本的执行中需要输入数据库密码:
- mysql -u root -p << SQL
- use db;
- set names utf8;
- `cat task.sql`
- SQL
运行上述代码后,会提示:
- Enter password:
经过搜索,发现expect可以帮助我们完成这件事情:
将上述代码保存到一个文件中:db.sh,并且编写如下代码:
- #!/usr/bin/expect -f
- spawn db.sh
- expect "Enter password: "
- send -- "password\n"
- interact
那么我们运行之后,就会进入数据库交互接口。
第一行指示了这个脚本要用哪个程序来运行;
第二行是重点,在EXPECT下启动了一个我们要执行的程序;
第三行也是重点,我们要告诉expect,当什么信息出现时需要expect帮助我们完成交互;
第四行就是出现输入密码的提示时,要发送的内容;
第五行的意思是保持交互,不要退出。如果没有这一句,脚本成功登录数据库后,会立即退出。
http://blog.csdn.net/topasstem8/article/details/17920127
Linux下后台程序完成自动输入密码等交互行为的例子的更多相关文章
- linux下通过脚本实现自动重启程序的方法
无论什么程序都不可能完美无缺,理论上,任何程序都有 Core Dump 的一天,正式运营的程序,尤其是服务器程序,一旦 Core Dump ,后果不堪设想,有过服务器开发经验的朋友,一定都经历过深夜美 ...
- Linux下C程序的编辑,编译和运行以及调试
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送) 国 ...
- Linux下Tomcat catalina.out自动归档,以及logrotate 配置详解
Linux下Tomcat catalina.out自动归档 如果 catalina.out 日志达到 2GB 大小的时候,Tomcat 因为缓存问题,便没有办法继续输出日志了. 为了避免这种情况,你 ...
- Linux下LCD 10分钟自动关屏的问题总结
Linux下的LCD驱动默认10分钟后会自动关闭屏幕,我们可以修改一下代码让其不自动关屏 在有一个 drivers/char/vt.c 文件其中有一个变量(blankinterval)可以设置它来修改 ...
- linux下后台启动springboot项目
linux下后台启动springboot项目 我们知道启动springboot的项目有三种方式: 运行主方法启动 使用命令 mvn spring-boot:run”在命令行启动该应用 运行“mvn p ...
- Linux下Jenkins与GitHub自动构建NetCore与部署
今天我们来谈谈NetCore在Linux底下的持续集成与部署.NetCore我就不多介绍了,持续集成用的是Jenkins,源代码管理器用的是GitHub.我们就跟着博文往下走吧. 1.Linux环境 ...
- linux下后台启动springboot项目(转载)
我们知道启动springboot的项目有三种方式: 运行主方法启动 使用命令 mvn spring-boot:run”在命令行启动该应用 运行“mvn package”进行打包时,会打包成一个可以直接 ...
- Linux下C程序的内存映像
2.Linux下C程序的内存映像 2.1. 代码段.只读数据段(1)对应着程序中的代码(函数),代码段在Linux中又叫文本段(.text)(2)只读数据段就是在程序运行期间只能读不能写的数据,con ...
- linux下c程序调用reboot函数实现直接重启【转】
转自:http://www.blog.chinaunix.net/uid-20564848-id-73878.html linux下c程序调用reboot函数实现直接重启 当然你也可以直接调用syst ...
随机推荐
- axis2 WebService的发布与调用
1:准备: JDK:http://www.oracle.com/technetwork/java/javase/downloads/jdk6downloads-1902814.html e ...
- android关于The connection to adb is down, and a severe error has occured.这个问题的解决办法
有时在打开模拟器的时候会出现The connection to adb is down, and a severe error has occured.这个问题,这个问题的解决办法有两个: 方法一:找 ...
- BlockingQueue的使用
本例介绍一个特殊的队列:BlockingQueue,如果BlockQueue是空的,从BlockingQueue取东西的操作将会被阻断进入等待状态,直到BlockingQueue进了东西才会被唤醒.同 ...
- ARC机制集合内存管理
// // main.m // 13-ARC机制集合内存管理 // // Created by apple on 14-3-21. // Copyright (c) 2014年 apple. ...
- cocos2dx 3.x以上版本搭建Mac环境(百分百可行)
近期由于工作的原因,有机会接触了游戏行业,说实话,本人学程序最原始的初衷就是想做游戏,于是就创建了一篇cocos2d-x的分类来记录我在学习cocos2d-x的成长过程. 首先第一篇,想学cocos2 ...
- DG - logical standby switchover切换过程
从11g起,主库和逻辑备库之间切换不再需要关闭任何数据库实例. 1.检查主数据库是否处于考虑切换状态 SQL> select switchover_status from v$database; ...
- jquery的ajax同步和异步
之前一直在写JQUERY代码的时候遇到AJAX加载数据都需要考虑代码运行顺序问题.最近的项目用了到AJAX同步.这个同步的意思是当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面出去 ...
- Canopy算法聚类
Canopy一般用在Kmeans之前的粗聚类.考虑到Kmeans在使用上必须要确定K的大小,而往往数据集预先不能确定K的值大小的,这样如果 K取的不合理会带来K均值的误差很大(也就是说K均值对噪声的抗 ...
- HTML语言的一些元素(二)
3)表示元素:<b>,<i>,<u>,<s>,<tt>,<sup>,<sub>,<strike>,< ...
- From Disk partition to PostgreSQL installation
From Disk partition to PostgreSQLinstallation [root@compute mnt]# fdisk /dev/sdb Welcome to fdisk (u ...