忘记密码   免费注册 查看新帖 | 论坛精华区

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT 视频 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 507 | 回复: 6

[文本处理] 新人江湖救急,兄弟们帮帮忙 [复制链接]

论坛徽章:
0
发表于 2017-06-14 16:24 |显示全部楼层
本帖最后由 tianlang725 于 2017-06-14 16:40 编辑

各位兄弟帮忙看看这个脚本问题出在那里!执行的时候提示错误:
switchchk.sh: line 59: syntax error: unexpected end of file

但是我的脚本只有58行。


# !/bin/sh  -x
#
#
#
#
# this is script is get switch table
#
#
#
#
#sw=`cat /home/switch/send/ms.txt | grep 'Revision' |awk -F ',' '{print $2}'`
#
#
# FTp get data from client pc
#
#
#
set user=ope
set password=operator
set smtpHost=192.168.1.47
set from=testerser@hdd.com

cat /home/switch/sw/iplist.txt | grep -v ^$ | while read line

do
echo "$line"
         for IpAddress in `awk '{print $2}'`
                do
                 echo "$IpAddress"
                done
        FTP -n<<EOF
                open $IpAddress
                user $user $password
                ascii
                cd /home/ope/lts/system/etc/
                lcd /home/switch/sw
                get ms.txt
                close
                bye
        EOF
         for Testid in `akw '{print $1}'`
                do
                echo "$Testid"
                done
# compare server and client switch tabel
        cw=`cat /home/switch/sw/ms.txt | grep 'Revision' | awk -F ',' '{print $2}'`
        sw=`cat /home/switch/send/ms.txt | grep 'Revision' |awk -F ',' '{print $2}'`

        if [ $sw -eq $cw ];then

                echo "$IpAddress":"$Testerid":"$cw":"switch table update" > /home/switch/sw/log_ok
        else
                echo "$IpAddress":"Testerid":"$cw ":"switch table didnot update" > /home/switch/sw/log_err
                echo "This is an automated message.Please do not reply!"
                `cat /home/switch/sw/log_err` | mail -s "Please check those client pc !" x_x@163.com.hk
        exit
        fi
done


论坛徽章:
7
15-16赛季CBA联赛之同曦
日期:2016-06-11 19:22:41程序设计版块每日发帖之星
日期:2016-07-04 06:20:00程序设计版块每日发帖之星
日期:2016-07-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-12 06:20:00每日论坛发贴之星
日期:2016-07-12 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00每日论坛发贴之星
日期:2016-08-09 06:20:00
发表于 2017-06-14 19:10 |显示全部楼层
        FTP -n<<EOF
                open $IpAddress
                user $user $password
                ascii
                cd /home/ope/lts/system/etc/
                lcd /home/switch/sw
                get ms.txt
                close
                bye
        EOF

这一块的EOF顶格写,不缩进
估计就是它的问题了

论坛徽章:
0
发表于 2017-06-15 13:49 |显示全部楼层
回复 2# ll104567
谢谢,兄弟。可以执行了,但是好像一直没有对比 。 知道是什么情况吗?
cat /home/switch/sw/ms.txt | grep 'Revision' | /bin/awk -F ',' '{print $2}'
11.74
cat /home/switch/send/ms.txt | grep 'Revision' | /bin/awk -F ',' '{print $2}'
11.74
This is an automated message.Please do not reply!
cat /home/switch/sw/log_err
switchchk.sh: line 72: #234: command not found
Null message body; hope that's ok

论坛徽章:
0
发表于 2017-06-15 13:50 |显示全部楼层
回复 2# ll104567
谢谢,兄弟。可以执行了,但是好像一直没有对比 。 知道是什么情况吗?
cat /home/switch/sw/ms.txt | grep 'Revision' | /bin/awk -F ',' '{print $2}'
11.74
cat /home/switch/send/ms.txt | grep 'Revision' | /bin/awk -F ',' '{print $2}'
11.74
This is an automated message.Please do not reply!
cat /home/switch/sw/log_err
switchchk.sh: line 72: #234: command not found
Null message body; hope that's ok

论坛徽章:
38
辰龙
日期:2013-08-21 15:45:19寅虎
日期:2014-06-09 12:52:17双鱼座
日期:2014-06-10 12:42:44巨蟹座
日期:2014-06-12 23:17:17戌狗
日期:2014-06-17 09:53:29未羊
日期:2014-10-10 13:45:41申猴
日期:2015-03-03 17:21:37亥猪
日期:2015-03-03 17:22:002015亚冠之广州富力
日期:2015-05-12 16:34:522015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:08平安夜徽章
日期:2015-12-26 00:06:30
发表于 2017-06-15 14:33 |显示全部楼层
回复 4# tianlang725

        if [ $sw -eq $cw ];then   ==> 改成  if [[  "$sw"  == "$cw" ]];then

                echo "$IpAddress":"$Testerid":"$cw":"switch table update" > /home/switch/sw/log_ok
        else
                echo "$IpAddress":"Testerid":"$cw ":"switch table didnot update" > /home/switch/sw/log_err
                echo "This is an automated message.Please do not reply!"
                `cat /home/switch/sw/log_err` | mail -s "Please check those client pc !" x_x@163.com.hk        ==> `cat /home/switch/sw/log_err`  改成   cat /home/switch/sw/log_err
        exit
        fi

论坛徽章:
0
发表于 2017-06-15 15:11 |显示全部楼层
本帖最后由 tianlang725 于 2017-06-15 15:13 编辑

回复 5# 关阴月飞

非常感谢 兄弟帮忙!

另外还想问一些如何显示Tester id在结果呢。 我的tester id在iplist .txt 第一行。
我想需要的结果是testerid + ip + 版本号 。 试了好几次都不成功。

论坛徽章:
0
发表于 2017-06-15 16:24 |显示全部楼层
本帖最后由 本友会机友会摄友会 于 2017-06-16 12:37 编辑

powershell不学【<】,powershell不会【<<】,powershell不懂【EOF】,却照样  觉得自己 很牛x。

对比2楼代码,《powershell ftp 模块 winscp介绍》

【安装】
管理员权限运行 Import-Module winscp
应该是win  linux 通用的。
安装后,目前linux模块文件名大小写还有点问题。自己改下文件名。

【升级】
管理员权限运行 update-Module winscp

推荐使用。理由:
1支持ftp,sftp,webdav。
2winscp支持获取ftp服务器上的文件的校验码,从而得知是否文件是变化的。
有Get-WinSCPItemChecksum从而可以同步文件。
网页     https://winscp.net/eng/docs/protocols      的,Checksum calculation 章节,详细说明了这个内容。
3支持命令行显示ftp完成进度,文件权限,文件掩码,传输限速,是否覆盖。文件传输模式(ascii or 二进制)详见此命令:
New-WinSCPTransferOption

手册,所有例子在此:
https://winscp.net/eng/docs/library_examples

【测试通过的脚本例子】

  1. #----------------------------
  2. #用户输入部分
  3. $本地路径 = 'd:\'
  4. $远程路径 = '/UPLOAD/'
  5. $ftp服务器 = '192.168.1.1'
  6. $用户名 = 'a'
  7. $用户密码明文 = '测试通过-2017-06'
  8. #----------------------------
  9. #脚本main
  10. $用户密码密文 = ConvertTo-SecureString $用户密码明文 -AsPlainText -Force
  11. $我的登陆凭据 = New-Object System.Management.Automation.PSCredential ($用户名,$用户密码密文)
  12. $ftp连接 = new-winscpsession -Protocol Ftp -HostName $ftp服务器  -Credential  $我的登陆凭据</p><p>
  13. $传输参数_二进制 = New-WinSCPTransferOption -TransferMode Binary  
  14. Send-WinSCPItem -WinSCPSession $ftp连接 -Path "$本地路径/xx1.txt" -Destination "$远程路径" -TransferOptions $传输参数_二进制
  15. #Receive-WinSCPItem -WinSCPSession $session -Path "/home/user/file.txt" -Destination "C:\download\"
  16. Remove-WinSCPSession -WinSCPSession $ftp连接
  17. #--------------完--------------
复制代码



【命令列表】
PS C:\Windows\system32> (get-command -module winscp).name
Enter-WinSCPSession
Exit-WinSCPSession
ConvertTo-WinSCPEscapedString
Get-WinSCPChildItem
Get-WinSCPItem
Get-WinSCPItemChecksum
Invoke-WinSCPCommand
Move-WinSCPItem
New-WinSCPItem
New-WinSCPItemPermission
New-WinSCPSession
New-WinSCPTransferOption
Receive-WinSCPItem
Remove-WinSCPItem
Remove-WinSCPSession
Rename-WinSCPItem
Send-WinSCPItem
Start-WinSCPConsole
Sync-WinSCPPath
Test-WinSCPPath

您需要登录后才可以回帖 登录 | 注册

本版积分规则

SACC2017购票7.8折优惠进行时

2017中国系统架构师大会(SACC2017)将于10月19-21日在北京新云南皇冠假日酒店震撼来袭。今年,大会以“云智未来”为主题,云集国内外顶级专家,围绕云计算、人工智能、大数据、移动互联网、产业应用等热点领域展开技术探讨与交流。本届大会共设置2大主会场,18个技术专场;邀请来自互联网、金融、制造业、电商等多个领域,100余位技术专家及行业领袖来分享他们的经验;并将吸引4000+人次的系统运维、架构师及IT决策人士参会,为他们提供最具价值的交流平台。
----------------------------------------
优惠时间:2017年8月2日前

活动链接>>
  

北京皓辰网域网络信息技术有限公司. 版权所有 京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:1101082001
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP