Покажи Публикации - lispevetpool
* Виж публикациите на потр. | Виж темите на потр. | Виж прикачените файлове на потр
Страници: [1]
1  Програмиране / Общ форум / Re: Помощ за Shell script -: Nov 16, 2015, 18:26
Не разбирам от програмиране. Дадоха ми задача, да напиша скрипт, който да проверява дадените в списъка адреси дали са достъпни. Скрипта който намерих би трябвало да работи, но на мен ми дава грешка (явно проблема е в мен). Та въпросът ми е ще работи ли скрипта, който намерих? Също така, освен с пинг, как може да се провери дали даден сървър или IP е паднал - как трябва да се измени кода?

Много ще съм ви благодарен, ако ми помогнете.
2  Програмиране / Общ форум / Re: Помощ за Shell script -: Nov 16, 2015, 15:14
#!/bin/bash
cat server.txt | while read line
do
        # check for no blank lines
        if [ ! -z $line ]; then
                PINGCOUNT=2
                PING=$(ping -c $PINGCOUNT $line | grep received | cut -d ',' -f2 | cut -d ' ' -f2)
                if [ $PING -eq 0 ]; then
echo "DOWN $line" | mail -s DOWN  test@test.com
                else
echo "UP $line"
fi
        fi
done

Да, почти същият е, но и на този скрипт ми дава същата грешка на последния ред.
3  Програмиране / Общ форум / Re: Помощ за Shell script -: Nov 16, 2015, 15:13
1. Изглежда, че не ни показваш целия скрипт - в грешката се говори за ред 16, какъвто нямаш в даденото парче код, а done-ът тук си е наред;
2. След като оправиш текущата грешка ще ти каже, че нямаш команда serverlist.txt - пропуснал си командата (вероятно cat) пред файла;
3. Не съм съгласен с качеството на ping проверката по начина, по който я правиш, ама ако ти удовлетворява нуждите...

Опа, грешка. Показва, че проблемът е на 13 ред.

http://dox.bg/files/dw?a=d751a82efb

"server.txt" съдържа няколко реда:
google.com
yahoo.com
mail.bg
4  Програмиране / Общ форум / Помощ за Shell script -: Nov 16, 2015, 13:25
Здравейте. Имам проблем със следния скрипт:

#!/bin/bash
serverlist.txt | while read line
do
        if [ ! -z $line ]; then
                PINGCOUNT=2
                PING=$(ping -c $PINGCOUNT $line | grep received | cut -d ',' -f2 | cut -d ' ' -f2)
                if [ $PING -eq 0 ]; then
                        echo "Server $line offline"
                else
                        echo "Server $line online"
                fi
        fi
done


Проверих го онлайн с execute_bash_online, но ми дажа следната грешка:

main.sh: line 16: syntax error near unexpected token 'done'
main.sh: line 16: 'done
'

Какъв е проблема? Моля ви помогнете.
Страници: [1]