Използвам
wput за качване на файлове. Написал съм скрипт, който да качва всички файлове от текущата директория и да повтаря качването, ако не е било успешно. Проблемът е, че понякога wput забива и не предава изпълнение на скрипта, който го е извикал докато не се прекрати (killall wput).
Идеята ми е, на всеки 5 минути да се пуска чрез crond една програма, която да проверява за забили процеси wput и да ги убива (за да може да се стартират отново). Но за целта ми трябва времето на стартиране на даден процес. Как мога да го получа?
Ето това е скрипта за сигурно качване:
wput_всички_обекти_от_ТЕКУЩАТА_директория_един_по_един.bash
Примерен код |
#!/bin/bash
if [ "$1" = "" ]; then echo "Къде ще се качват файловете?" echo "ftp://име:парола@ftp.site.com/path/to/remotedir/" read DestFTPURL else DestFTPURL="$1" fi
ls | while read LN; do
while true; do wput -nc -u --tries=-1 "$LN" "$DestFTPURL" if [ $? = 0 ]; then break fi echo "Някаква грешка. Ще се направи още един опит след две секунди..." sleep 2 done
done
|