2011-12-14 15 views
0

これを実行してファイルをリモートサーバに置くことができます。しかし、それが実行されるとき、私はそれが転送失敗、転送OK、ファイルのゼロバイトとそのようなファイルやディレクトリをエコーし​​たい。コードを実行して、ファイルがサーバーに転送されたときにそのようなファイルまたはディレクトリではない最後のエントリの電子メールを送信します。私は何を間違えているのですか? Thx事前に、ありがとうございます。Bashエラー報告

#!/bin/sh 
HOST=10.10.1.2 
USER='test' 
RECIP="[email protected]" 
cd /home/test 
FILE=ARG$(date '+%Y%m%d').txt 
BYTES=`stat -c%s $FILE` 
CONNECTION=`netstat -an | grep ESTABLISHED | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | awk '{printf("%s\t%s\t",$2,$1) ; for (i = 0; i < $1; i++) {printf("*")}; print ""}'` 
RUN_AS=`whoami` 
RESULT=`sftp [email protected]$HOST <<EOF 
FILE=ARG$(date '+%Y%m%d').txt 
cd /998979/DES 
if [ -e $FILE ]; then 
put $FILE 
EOF` 

echo $CONNECTION "Connection to network is established." 

ls | xargs wc -wl for file in *; echo $FILE done 
if [ $? -eq 0 ]; then 
echo "$RESULT" "Transfer of file failed. `date`" 
SBJ="Transfer of file failed `date`" 
fi 
echo "$RESULT" "Transfer OK" 
if [ $? -eq 0 ]; then 
SBJ="Transfer OK. `date`" 
echo "$RESULT" "Transfer OK" 
fi 
if \[ ! -s ${FILE} \]; then 
echo "File: ${FILE} is not present or a ZERO byte file" 
SBJ="Failed to upload. Zero bytes in file. `date`" # zero bytes sent 
fi 
if [ -a $FILE ]; then 
echo "$RESULT" "No such file or directory" 
SBJ="No such file or directory. `date`" 
fi 

BODY="Process Report....... 

SRC SERVER:`hostname` 
DST SEVER: TESTSERVER 
SCRIPT: /usr/local/bin/put.sh 
RUN AS: "$RUN_AS" 

RESULT: "$RESULT" "$FILE" 

CONNECTION: "$CONNECTION" 

FILENAME: "$FILE" 

BYTES: "$BYTES" 
DATE/TIME: `date`" 

echo "$BODY" | mail -s "$SBJ" "$RECIP" 
+1

まさに今何を見ていますか? 'ls | xargs wc -wlのファイルに*;エコー$ファイル 'が奇妙に見える –

答えて

2

何が起きているのかを理解するには、/bin/sh -xv yourshellscript.shを使用できます。

そして、あなたはlogger

+0

ls | xargs wc -wlのファイルに*; echo $ FILE done – user1098279

+0

上記は、スクリプト実行時のフォルダ内のファイルの一覧です。 – user1098279

0
count=$? 

if [ $count -eq 0 ]; then 
echo "$RESULT" "Transfer of file failed. 
`date`" SBJ="Transfer of file failed `date`" 
else 
echo "$RESULT" "Transfer OK" 
fi 

また、あなたがより多くの処理を行う必要がないときに出口を使用しようとし、結果を変数に代入を使用して、システムログに重要なメッセージをログに記録できます。

+0

上記を試しましたが、まだダイスはありません。 – user1098279

+0

私はそのようなファイルやディレクトリ、ファイル内のゼロバイトを「エラー」しないようにすることができます。私はちょうどスクリプトをもう一度実行し、FTPが100%混乱していることをはっきりと見たときに「このようなファイルやディレクトリはありません」と表示されました。 – user1098279

+0

だから – user1098279

関連する問題