0

以下の要件があります。

毎日多くのファイルをunixフォルダーに書き込むJavaプロセスが1つありますが、以下のファイルには、Unixシェルスクリプトを使用して別のフォルダーへのsftpが必要です

TestSD20121016.csv (毎日 16:00P.M に unix フォルダにファイルを書き込みます) TestSP20121016.csv (毎日 17:00P.M に unix フォルダにファイルを書き込みます)

私が以下のように書いたスクリプト:

#!/bin/sh
#------------------------------------------------------------------------
# Parameters
# sftp_file_uploads.sh remoteServer functionalId
#------------------------------------------------------------------------

REMOTE_SERVER=$1
FUNCTIONAL_ID=$2
FILE_TO_UPLOAD= ls -lrt TESTSD`date "+%Y%m%d"`*.CSV  | awk '/TEST/{ f=$NF };END{ print f }'


#------------------------------------------------------------------------
# Create sftp script
#------------------------------------------------------------------------
rm -f /var/tmp/SFTP_FILE_UPLOAD
echo "lcd $3" > /var/tmp/SFTP_FILE_UPLOAD
echo "cd $5" >> /var/tmp/SFTP_FILE_UPLOAD
echo "put $FILE_TO_UPLOAD" >> /var/tmp/SFTP_FILE_UPLOAD
echo "bye" >> /var/tmp/SFTP_FILE_UPLOAD



#------------------------------------------------------------------------
# Do sftp
#------------------------------------------------------------------------
echo " Before SFTP " > /tmp/FILE_UPLOAD_LOG
/usr/bin/sftp -B /var/tmp/SFTP_FILE_UPLOAD $2@$1 1>/var/tmp/sftp.log 2>&1

result=$?
if [ $result -eq 0 ]
then
  echo "SFTP completed successfully"
else
  echo "FAILED to SFTP"
  exit 1
fi

exit 0

問題は、スクリプトがファイル TestSD20121016.csv を取得できるが、ファイル TestSP20121016.csv を取得できないことです。上記のスクリプトを記述して sftp の 2 番目のファイルも実行する方法がわかりません。

よろしく、

チャトゥ

4

2 に答える 2

0

?問題が単一の文字である場合は、単一の文字 (任意の文字) に一致するように指示する に置き換えることができます。

FILE_TO_UPLOAD= ls -lrt TESTS?`date "+%Y%m%d"`*.CSV  | awk '/TEST/{ f=$NF };END{ print f }'
于 2012-10-16T13:17:56.507 に答える
0

行を追加してみませんか:

FILE_TO_UPLOAD2= ls -lrt TESTSP`date "+%Y%m%d"`*.CSV  | awk '/TEST/{ f=$NF };END{ print f }'

とライン

echo "put $FILE_TO_UPLOAD2" >> /var/tmp/SFTP_FILE_UPLOAD

どこに置くべきか知っていると思いますか?

于 2012-10-16T13:13:06.853 に答える