On 2007-08-30 01:03, Hinkie <[EMAIL PROTECTED]> wrote: > Hi > > I want to run a cron job in /etc/crontab that runs (ifconfig em0 down; > ifconfig em0 up) if my cables static ip gateway can't be pinged but I > can't figure it out. I can't get the syntax that runs in the command > window, to then put intot the crontab.... > > Can anyone help me? > > I've tried all sorts such as: > > if (ping -c1 a.b.c.1 != 1) then ifconfig em0 down; ifconfig em0 up endif > if ping -c1 a.b.c.1 != 1 then ping -c1 203.97.234.1 endif > if ping -c1 a.b.c.1 (ifconfig em0 down; ifconfig em0 up) > if ( ping -c1 a.b.c.1 != 1) ( ping -c1 203.97.234.182 ) > if $command("=ping -c1 a.b.c.1 =0") echo sucess > if ping -c 1 -w 1 a.b.c.1 >/dev/null echo sucess > if [[ (ping -q -c 3 a.b.c.1) == @(*100% packet loss*) ]]; echo sucess > if ! ping -c a.b.c.1 > /dev/null ; then echo sucess ; echo fail; fi
I see you are using csh(1) shell syntax. The crontab entries are passed as commands to /bin/sh, so this sort of syntax won't really work. In general, I find the idea of long, complex crontab entries _very_ error-prone, and I prefer writing scripts which are _callable_ from cron. For example, I have several local clones of repositories which can be synchronized using Mercurial, but properly synchronizing them would require running: #!/bin/sh repo="mercurial/crew" repodir="${HOME}/hg/mercurial/crew" cd "${repodir}" if test $? -ne 0 ; then echo "${repodir}: directory not accessible." >&2 exit 1 fi hg pull Instead of cluttering my crontab with long-winded, complex stuff like this, I wrote a short shell script -- like the one above -- and saved it in my `~/cron.d' directory. Now my crontab contains: */2 * * * * ${HOME}/cron.d/hg-pull-crew.sh Try something similar too. It's easier to maintain potentially complex actions, if you `abstract away' all the complexity behind a script. Then you can also use whatever you prefer to write the scripts, like csh(1), Perl, or Python. Just make the script file executable and make sure it contains the proper '#!' line. - Giorgos _______________________________________________ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "[EMAIL PROTECTED]"