2017-08-08 78 views
-1

試圖執行我的腳本壞端口number-- SFTP://11.111.10.3

max,max: bad port number-- sftp://11.111.10.3 
usage: -i host-name [port] 
?Invalid command 
Not connected. 
Not connected. 
Not connected. 

這個腳本應該檢查CPU內存和磁盤使用的10臺服務器當我得到這個錯誤,即時通訊在一臺服務器上運行,它必須ftp並檢查其他服務器並將所需的數據存儲在一臺服務器上,但此錯誤不會消失。

#! /bin/bash 

BasePath=$(cd `dirname $0`; pwd) 

function FtpMonitFile(){ 
    ServerPath=${BasePath}/data/$5 
    mkdir -p $ServerPath 
    ftp -i $2,$3 sftp://$1 <<EOF 
    set xfer:clobber on 
    cd $ServerPath 
    cd $4 
    get Monitor_$(date +%Y%m%d).txt 
    bye 
EOF 
} 

function GenerateReport(){ 
    mkdir -p ${BasePath}/result 

    if [ ! -f ${BasePath}/result/$1.txt ]; then 
     echo "Time|" > ${BasePath}/result/$1.txt 
     awk 'BEGIN{ 
     for(i=0;i<=24;i++) 
     { 
      for(j=0;j<60;j=j+10) 
      { 
       if(length(i)<2){i="0"i} 
       if(length(j)<2){j="0"j} 
       print i ":" j "|" 
      } 
     } 
     }' >> ${BasePath}/result/$1.txt 
    fi 

    awk -v DayFile="${BasePath}/data/$1/Monitor_$(date +%Y%m%d).txt" -v ReFile="${BasePath}/result/$1.txt" -v Day=$(date +%m%d) 'BEGIN{ 
     while(getline<DayFile){ 
     if($2>flag[substr($1,1,4)]){ 
      flag[substr($1,1,4)]=$2; 
     } 
    } 
    }{ 
    if(substr($1,1,4)=="Time"){ 
     print $0 Day "|"; 
    }else{ 
     print $0 flag[substr($1,1,4)] "|"; 
    } 
    }' ${BasePath}/result/$1.txt >${BasePath}/result/$1.tmp 

    mv ${BasePath}/result/$1.tmp ${BasePath}/result/$1.txt 

} 

function main(){ 
    if [ ! $# == 5 ]; then 
    echo "Please check the parameters" 
    exit 
    fi 

FtpMonitFile $1 $2 $3 $4 $5 
GenerateReport $5 
} 

#param: ip user_name password remote_dir server_name() 
#e.g. 
#  FtpMonitFile 10.130.27.2 soft soft /home/soft/cwk OCS2 

#FtpMonitFile 10.130.27.1 soft soft /home/soft/cwk OCS1 

main 11.111.10.3 max max /home/max/ocsrpt/cwk server1 
main 11.111.10.3 max max /home/max/ocsrpt/cwk server2 

錯誤是在第8行和第8行的代碼是

ftp -i $2,$3 sftp://$1 <<EOF 

我試圖把下列代碼 sftp://&1:22sftp://&1":"22

但即時仍得到同樣的錯誤,任何關於如何去幫助它的建議!

+0

嘗試用空格代替它們分開:該錯誤消息說 '用法:-i主機名[端口]',而不是''使用:-i主機名:端口' –

+0

@RobertK如果空間不足,會得到這個錯誤./Mon2.bash:第8行:1:找不到命令 用法:-i主機名[端口] – jacktheeye

+0

整條線看起來很奇怪。 ftp和sftp是兩個完全不同的程序。該行應該做什麼? –

回答

0

我改變STFP到ftp的,它的工作

ftp -n<<! 
open $1 
user $2 $3 
binary 
cd $4 
lcd $ServerPath 
prompt 
get Monitor_$(date +%Y%m%d).txt 
close 
bye 
! 

感謝