私は多くのディレクトリを持ち、それぞれにはいくつかの着信ファイルの流れがあります。 定義された各ディレクトリからすべてのファイルをアップロードしたスクリプトが、定義されたftp URLに必要です。 これは、終わりのサイクルでスリープ状態のbashサイクルを介してすべての定義が完了し、60秒間スリープして再びループを開始できる場合に最適です。ftpアップロードスクリプト - 多くのディレクトリから、それぞれ自分のftpパスに?
今私はそのような何かを持っているが、それは醜いだった、非常に長いスクリプト:いくつかの大まかなクリーンアップと簡素化
####ana
echo "Starting script:ana $(date +%Y.%m.%d\ %H:%M:%S)..."
getfmts() { if [ -f "$1" ] || [ -d "$1" ]; then echo $(stat -c %Y $1); else echo 0; fi; }
DIRIN_ana=/DWD_sorted/ana # Full path to input directory
DIROUT_ana=/DWD_sorted/ana_sent # Full path to output directory
cd $DIRIN_ana
if [ "$(ls -A .|grep bufr)" ]; then echo "Processing files..."; else echo "No files"; exit; fi
for f in *; do
ts=$(date +%s); tsf=$(getfmts $f)
if [ $((ts-tsf)) -gt 10 ]; then
echo "Sending file $f to ftp..."
curl -T $f ftp://smart:[email protected]/../../smart/edit/dwd/ana
if [ $? -eq 0 ]; then
mv -f $f $DIROUT_ana/
else
echo "There was an error when trying to upload file!"
fi
fi
done
echo "Script finished: $(date +%Y.%m.%d\ %H:%M:%S)"
####hsy
echo "Starting script:hsy $(date +%Y.%m.%d\ %H:%M:%S)..."
getfmts() { if [ -f "$1" ] || [ -d "$1" ]; then echo $(stat -c %Y $1); else echo 0; fi; }
DIRIN_hsy=/DWD_sorted/hsy # Full path to input directory
DIROUT_hsy=/DWD_sorted/hsy_sent # Full path to output directory
cd $DIRIN_hsy
if [ "$(ls -A .|grep bufr)" ]; then echo "Processing files..."; else echo "No files"; exit; fi
for f in *; do
ts=$(date +%s); tsf=$(getfmts $f)
if [ $((ts-tsf)) -gt 10 ]; then
echo "Sending file $f to ftp..."
curl -T $f ftp://smart:[email protected]/../../smart/editor/dwd/gme/hsy
if [ $? -eq 0 ]; then
mv -f $f $DIROUT_hsy/
else
echo "There was an error when trying to upload file!"
fi
fi
done
echo "Script finished: $(date +%Y.%m.%d\ %H:%M:%S)"
をスクリプトをインデントしてください:) – perreal
は今okですか?私は、例えば、FTP1 = ftp://スマート:スマート@ SM /../../スマート/エディタ/ dwd/gme/hsy、DIRIN1 =/DWD_sorted/hsyなどのリンク変数を定義することができますしかし、どのように部分ごとにそれを取る循環スクリプトを構築し、最後に行くと、最初に戻り、再び開始するのですか? – Draco