2012-02-03 20 views
1

いくつかのルールを使っていくつかのファイルをftpするスクリプトを書いています。しかし、私はスクリプトのFTPセッションの作成に問題があります。Solarisシェルスクリプト

以下は現在使用しているシェルスクリプトです。

#!/bin/bash 
cd /var/ericsson/nin/charging/archive 
date=`(/usr/bin/perl -e '($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time()-24*60*60);printf "%4d%02d%02d", $year+1900,$mon+1,$mday;')` 
movedFile=`ls | grep $date` 
HOST=xxxx 
USER=xxxx 
PASSWD=xxxxx 
for i in $movedFile; 
do 
    echo $date >> trial.txt 
    echo "Uploading file $i" >> trial.txt 
    ftp -n $HOST 
    quote USER $USER 
    quote PASS $PASSWD 
    binary 
    cd TEMP 
    put $i 
    quit 
    END_SCRIPT 
    echo "kk" 
done 

問題があります。 ftpのquoteコマンドを起動することはできません。

答えて

0

ですので、コメントには表示されません。ここに正しい答えは私の状況に働いた

cd xxxx 
date=(/usr/bin/perl -e '($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time()-24*60*60‌​);printf "%4d%02d%02d", $year+1900,$mon+1,$mday;') 
movedFile=ls | grep $date 
HOST=xxxx 
USER=xxxx 
PASSWD=xxxx 
for i in $movedFile; 
do 
    echo $date >> xxxx.log 
    echo $i >> xxxx.log 
    ftp -n $HOST <<End-Of-Session user "$USER" "$PASSWD" 
    binary 
    cd TEMP 
    put $i 
    quit 
    End-Of-Session 
done 
3

チェックアウトbash Here Documents。探している構文は、

ftp -n $HOST <<END_SCRIPT 
    quote USER $USER 
    quote PASS $PASSWD 
    binary 
    cd TEMP 
    put $i 
    quit 
END_SCRIPT 
+0

私はこれが私のために働いています。 !! #!/ bin/bash cd xxxx 日付= '(/ usr/bin/perl -e '($秒、$分、$時間、$ mday、$月、$年、$日、$日、 $ 00 + 1、$ mday; ') 'movedFile =' ls | $ isdst)= localtime(time - )24 * 60 * 60); printf "%4d%02d%02d"、$ year + 1900、$ mon + grepの$ date' HOST = xxxxの USER $ movedFileで私のために= XXXX PASSWD = XXXX 。 は エコー$日付を行う>> するecho $ I >> xxxx.log のftp -n $ HOST << END-OF-セッション ユーザーの "$ USER" の "$ PASSWD" バイナリ CD TEMP プットをxxxx.log $私は のセッションの終了 が、私はコードのようにそれを作るcould'tことを残念に –

+0

を行って終了 !! –

+1

@OlgunKaya:コメントにコードを投稿しようとしないでください、そのためのサポートはありません。見つかった解決策がhere-documentsと異なる場合は、回答として投稿してください。 – Mat

関連する問題