1. leht 1-st

Lihtne sh script ei toimi

Postitatud: 12.07.2009, 13:21
Postitas mixman
Tere, selline küsimus, et miks ei toimi mul lihtne sh script ?

Kood: Vali kõik

#!/bin/sh
 
PROCESS_COUNT=$(ps -fu root | grep samp02Xsvr | grep -v grep | wc -l)
case $PROCESS_COUNT in
0) /home/Sysadmin/games/samp/samp02Xsvr &
;;
1) #OK, programm käib ühe protsessiga
;;
*) #OK, programm käib mitme protsessiga
;;
esac
Scripti mõte on siis kontrollida kas samp02Xsvr protsess käib, kui mitte siis käivitab selle.

Proovisin kontrollida käsuga:
[root@web221 samp]# ./kontrollisampi.sh

tulemus:
-bash: ./kontrollisampi.sh: /bin/sh^M: bad interpreter: No such file or directory
Milles võib probleem olla?


Distro: Centos 5.3
Kontrollisampi.sh õigused: 755

Postitatud: 12.07.2009, 13:42
Postitas bobc
Kontrolli kas sul ikka sh asub /bin/ kataloogis (võimalik, et on /usr/bin/sh).
SH peaks olema BASH link.
ja miks mitte kasutada:

Kood: Vali kõik

psgrep -u root samp02Xsver
või

Kood: Vali kõik

pidof samp02Xsver 

Postitatud: 12.07.2009, 14:24
Postitas Sisyphos
googel ütles:

Kood: Vali kõik

this is normally caused by one of two things, either having bad line breaks in the script file due to it being edited under windows, or the not having an appropriate call to an interpreter on the first line (ie #!/bin/sh).
windows'i all kirjutatud skript ? Muuda realõpud unix'i omadeks.

Postitatud: 12.07.2009, 14:30
Postitas mixman
Sisyphos kirjutas:googel ütles:

Kood: Vali kõik

this is normally caused by one of two things, either having bad line breaks in the script file due to it being edited under windows, or the not having an appropriate call to an interpreter on the first line (ie #!/bin/sh).
windows'i all kirjutatud skript ? Muuda realõpud unix'i omadeks.
Tänud, see aitas kasutasin sellist utiili nagu dos2unix. :)


Üks asi veel selle scriptiga, tahtisn seda panna crontab alla, aga ei taha toimida millegi pärast.

tegin nii
crontab -e
mille sisu sai selline
41 3 * * * /etc/webmin/cron/tempdelete.pl
*/1 * * * * /home/Sysadmin/games/samp/kontrollisampi.sh >/dev/null 2>&1
Salvestasin ja tegin isegi restardi crontab daemonile, aga tundub et ei toimi, tapsin protsessi samp02Xsvr, aga uuesti tööle ei lähe, kas selle kohta ka ideid on kellegil ?

Käsitsi scripti käivitades toimib küll.

Postitatud: 12.07.2009, 16:10
Postitas DaStoned
Kas sellel kasutajal, kelle crontabi sa nokkisid, on õigust skripti käiata?

Lisa faili algusesse "MAILTO=sinukasutajanimi" ja ära saada väljundit /dev/null-i. Kui su masinasisene e-post töötab (testida saad käsuga "[font=Courier New]echo Hello world | mail -s Proovikiri sinukasutajanimi[/font]"), siis peaks käsu väljund sulle saadetama (lugeda saad käsuga "mail").

Postitatud: 12.07.2009, 19:40
Postitas mixman
DaStoned kirjutas:Kas sellel kasutajal, kelle crontabi sa nokkisid, on õigust skripti käiata?

Lisa faili algusesse "MAILTO=sinukasutajanimi" ja ära saada väljundit /dev/null-i. Kui su masinasisene e-post töötab (testida saad käsuga "[font=Courier New]echo Hello world | mail -s Proovikiri sinukasutajanimi[/font]"), siis peaks käsu väljund sulle saadetama (lugeda saad käsuga "mail").
Kasutaja on root, seega peaks vist olema õigused ?


Proovisin seda maili asja, tundub et scriptiga ikka mingi kala :(
From root@web221.xxx.xx Sun Jul 12 22:38:01 2009
Date: Sun, 12 Jul 2009 22:38:01 +0300
From: root@web221.xxx.xx (Cron Daemon)
To: root@web221.xxx.xx
Subject: Cron <root@web221> /home/Sysadmin/games/samp/kontrollisampi.sh &
Content-Type: text/plain; charset=UTF-8
Auto-Submitted: auto-generated
X-Cron-Env: <MAILTO=root>
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
X-Cron-Env: <USER=root>

/bin/sh: /home/Sysadmin/games/samp/kontrollisampi.sh: /bin/sh^M: bad interpreter: No such file or directory

Postitatud: 12.07.2009, 23:59
Postitas DaStoned
No kala on see sama mis ennist - realõpud on DOS-i omad.