나는 많은 디렉토리를 가지고 있으며 각각 들어오는 파일 흐름이있다. 정의 된 각 디렉토리의 모든 파일을 정의 된 ftp url로 업로드하는 스크립트가 필요합니다. 최선의 방법은, bash cycle을 통해 수면을 끝내고, 정의 된 모든 것을 끝내고, 60 초 동안 sleep하고, 다시 loop를 시작하는 것입니다.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
을 들여하세요? 예를 들어, FTP1 = ftp : // smart : 스마트 @ SM /../../ 스마트/에디터/dwd/gme/hsy, DIRIN1 =/DWD_sorted/hsy 등의 링크 된 변수를 정의 할 수 있습니다. 어떤 방식으로 순환 스크립트를 작성하면 끝까지 갈 때 처음으로 돌아가서 다시 시작할 수 있습니까? – Draco