- 论坛徽章:
- 14
|
本帖最后由 royzs 于 2012-02-29 13:20 编辑
我要写一个脚本,校验文件的完整性,并且将校验结果发送到一台resin的web站点下
我想的步骤是
1.登录svn服务器找到需要抓取的文件(文件有多个)生成md5校验码sort排序导入到txt文本文件回传到本地;
2.在本地find从svn上面抓取的多个文件生成md5校验码排序并且导入到txt文本文件;
3.对比两个md5校验结果的文本文件,每行对比,每行显示一个ok;
4.将反馈的结果发送到apache的站点下。
问题已经解决,多谢winway1988的指点,还有askandstudy的耐心指导,以及上海sky的文章http://www.mysqlops.com/2011/11/02/shell-expect.html
最终代码如下,如有问题或者建议,还请提出- #/bin/bash
- USR=root
- PWD=123456
- IP=192.168.1.35
- FILE_HOME=/root/soft
- MD5_HOME=/tmp
- WEB_HOME=/usr/resin/webapps/
- expect -c "
- spawn ssh $USR@$IP
- expect \"password:\";send \"$PWD\r\"
- expect \"#\";send \"pwd\r\"
- expect \"#\";send \"ls\r\"
- expect \"#\";send \"find $FILE_HOME -type f|xargs md5sum|cut -d ' ' -f1|sort > md5.txt\n\"
- expect \"#\";send \"ls\r\"
- expect \"#\";send \"cat md5.txt\r\"
- expect \"#\";send \"exit\r\"
- expect \"#\";spawn scp $USR@$IP:~/md5.txt $MD5_HOME/md5.txt
- expect \"password:\";send \"$PWD\r\"
- expect eof
- "
- find $FILE_HOME -type f|xargs md5sum|cut -d ' ' -f1|sort>$MD5_HOME/lmd5.txt
- paste $MD5_HOME/md5.txt $MD5_HOME/lmd5.txt|awk '$1==$2 {print $0,"ok"}; $1!=$2 {print $0,"fail"}'>$MD5_HOME/md5.do
- expect -c "
- spawn scp $MD5_HOME/md5.do $USR@$IP:$WEB_HOME/md5.do
- expect \"password:\"
- send \"$PWD\";send \"\n\"
- expect eof
- "
复制代码 |
|