here we go again...
1. daca pui comenzile tale in /var/spool/cron/root (metoda recomandata este sa
te faci root si sa dai comanda 'crontab -e'), sintaxa este
* * * * * /root/bin/rescanscsi
(FARA root)
2. daca pui comenzile in /etc/crontab (care este global, pentru toti userii),
sintaxa este
* * * * * root /root/bin/rescanscsi
^^^^- userul cu care este rulata comanda
3. daca folosesti /etc/cron.{hourly,daily,etc} se pune in directorul
respectiv direct scriptul de executat sau link simbolic catre el
4. */1 este inutil. * e acelasi lucru (orice numar se imparte exact la 1,
right?)
On Wed, Sep 25, 2002 at 11:48:08AM +0300, Alex wrote:
> Hi Alex :-),
>
> Nu , nu.... problema nu este la ordinea executarii, ci in scriptul in
> sine. Am facut un mic test:
> 1. am lasat in crontab numai o linie de forma:
> */1 * * * * root /root/bin/rescanscsi -r &> /root/xxx.log
>
> Apoi ma uit in /var/spool/mail/root si in /root/xxx.log. Iata
> rezultatele:
> [root@server bin]# cat /root/xxx.log
> /bin/sh: root: command not found
> [root@server bin]#
>
> [root@server bin]# cat /var/spool/mail/root
> -----------------------------------
> >From root Wed Sep 25 10:30:01 2002
> Return-Path: <[EMAIL PROTECTED]>
> Received: (from root@localhost)
> by localhost.localdomain (8.11.6/8.11.6) id g8P7U0001357
> for root; Wed, 25 Sep 2002 10:30:00 +0300
> Date: Wed, 25 Sep 2002 10:30:00 +0300
> Message-Id: <[EMAIL PROTECTED]>
> From: [EMAIL PROTECTED] (Cron Daemon)
> To: [EMAIL PROTECTED]
> Subject: Cron <root@server> root /bin/echo "am scanat"
> X-Cron-Env: <SHELL=/bin/sh>
> X-Cron-Env: <HOME=/root>
> X-Cron-Env: <PATH=/usr/bin:/bin>
> X-Cron-Env: <LOGNAME=root>
>
> /bin/sh: root: command not found
> ^^^^^^^^^^^^
> Deci e limpede ca la executatea scriptului, probabil ca nu initializeaza
> o variabila si de eroarea in cauza!
> Si inca ceva: scriptul ruleaza corect in consola daca sunt logat ca
> root.
>
> Oricum, daca are cineva un hit, este binevenit.
> Atasez in continuare si scriptul rescanscsi,pentru cazul in care se
> prinde cineva mai rpd decit mine de unde apare aceasta eroare:
>
> #!/bin/bash
> # Skript to rescan SCSI bus, using the
> # scsi add-single-device mechanism
> # (w) 98/03/19 Kurt Garloff <[EMAIL PROTECTED]> (c) GNU GPL
>
> # Return hosts. /proc/scsi/HOSTADAPTER/? must exist
> findhosts ()
> {
> hosts=
> for name in /proc/scsi/*/?; do
> name=${name#/proc/scsi/}
> if test ! $name = scsi
> then hosts="$hosts ${name#*/}"
> echo "Host adapter ${name#*/} (${name%/*}) found."
> fi
> done
> }
>
> # Test if SCSI device $host $channen $id $lun exists
> # Outputs description from /proc/scsi/scsi, returns new
> testexist ()
> {
> grepstr="scsi$host Channel: 0$channel Id: 0*$id Lun: 0$lun"
> new=`cat /proc/scsi/scsi|grep -e"$grepstr"`
> if test ! -z "$new"
> then cat /proc/scsi/scsi|grep -e"$grepstr"
> cat /proc/scsi/scsi|grep -A2 -e"$grepstr"|tail -2|pr -o4 -l1
> fi
> }
>
> # Perform search (scan $host)
> dosearch ()
> {
> for channel in $channelsearch; do
> for id in $idsearch; do
> for lun in $lunsearch; do
> new=
> devnr="$host $channel $id $lun"
> echo "Scanning for device $devnr ..."
> printf "OLD: "
> testexist
> if test ! -z "$remove" -a ! -z "$new"
> then echo "scsi remove-single-device $devnr" >/proc/scsi/scsi
> echo "scsi add-single-device $devnr" >/proc/scsi/scsi
> printf "\r\x1b[A\x1b[A\x1b[AOLD: "
> testexist
> if test -z "$new"; then printf "\rDEL: \r\n\n\n\n"; let rmvd+=1; fi
> fi
> if test -z "$new"
> then printf "\rNEW: "
> echo "scsi add-single-device $devnr" >/proc/scsi/scsi
> testexist
> if test -z "$new"; then printf "\r\x1b[A"; else let found+=1; fi
> fi
> done
> done
> done
> }
>
>
> # main
> if test @$1 = @--help -o @$1 = @-h
> then
> echo "Usage: rescan-scsi-bus.sh [-l] [-w] [-c] [host [host ...]]"
> echo " -l activates scanning for LUNs 0 .. 7 [default: 0]"
> echo " -w enables scanning for device IDs 0 .. 15 [def.: 0 .. 7]"
> echo " -r enables removing of devices [default: disabled]"
> echo " -c enables scanning of channels 0 1 [default: 0]"
> echo " If hosts are given, only these are scanned [default: all]"
> exit 0
> fi
>
> # defaults
> lunsearch="0"
> idsearch="0 1 2 3 4 5 6 7"
> channelsearch="0"
> remove=""
>
> # Scan options
> opt="$1"
> while test ! -z "$opt" -a -z "${opt##-*}"; do
> opt=${opt#-}
> case "$opt" in
> l) lunsearch="0 1 2 3 4 5 6 7" ;;
> w) idsearch="0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15" ;;
> c) channelsearch="0 1" ;;
> r) remove=1 ;;
> *) echo "Unknown option -$opt !" ;;
> esac
> shift
> opt="$1"
> done
>
> # Hosts given ?
> if test @$1 = @; then findhosts; else hosts=$*; fi
>
> declare -i found=0
> declare -i rmvd=0
> for host in $hosts; do dosearch; done
> echo "$found new device(s) found. "
> echo "$rmvd device(s) removed. "
>
>
> Regards,
>
> Alex
> ---
> Pentru dezabonare, trimiteti mail la
> [EMAIL PROTECTED] cu subiectul 'unsubscribe rlug'.
> REGULI, arhive si alte informatii: http://www.lug.ro/mlist/
--
___
<o-o> Viorel ANGHEL <vang @ lug.ro>
[`-']
-"-"- In Linux We Trust.
---
Pentru dezabonare, trimiteti mail la
[EMAIL PROTECTED] cu subiectul 'unsubscribe rlug'.
REGULI, arhive si alte informatii: http://www.lug.ro/mlist/