0

我有以下要求:

我有一个 java 进程,它每天将大量文件写入 unix 文件夹,但下面的文件需要使用 Unix Shell 脚本 sftp 到不同的文件夹

TestSD20121016.csv(每天下午 16:00 将文件写入 unix 文件夹) TestSP20121016.csv(每天晚上 17:00 将文件写入 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 第二个文件。

问候,

柴兔

4

2 回答 2

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 回答
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 回答