From owner-freebsd-questions@FreeBSD.ORG Wed Aug 29 13:42:54 2007 Return-Path: Delivered-To: freebsd-questions@FreeBSD.ORG Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8ACD616A419 for ; Wed, 29 Aug 2007 13:42:54 +0000 (UTC) (envelope-from lreid@cs.okstate.edu) Received: from a.cs.okstate.edu (a.cs.okstate.edu [139.78.113.1]) by mx1.freebsd.org (Postfix) with ESMTP id 6B12013C458 for ; Wed, 29 Aug 2007 13:42:54 +0000 (UTC) (envelope-from lreid@cs.okstate.edu) Received: from [172.18.0.137] (unknown [70.168.226.150]) by a.cs.okstate.edu (Postfix) with ESMTP id 94B2EA07EC; Wed, 29 Aug 2007 08:42:53 -0500 (CDT) Message-ID: <46D577CA.4030008@cs.okstate.edu> Date: Wed, 29 Aug 2007 08:42:34 -0500 From: Reid Linnemann User-Agent: Thunderbird 2.0.0.6 (X11/20070809) MIME-Version: 1.0 To: Hinkie References: <01a901c7ea3d$0ad62720$1e00a8c0@cheqsoft.local> In-Reply-To: <01a901c7ea3d$0ad62720$1e00a8c0@cheqsoft.local> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-questions@FreeBSD.ORG Subject: Re: FreeBSD Cron Job to run (ifconfig em0 down; ifconfig em0 up) X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Aug 2007 13:42:54 -0000 Written by Hinkie on 08/29/07 08:03>> > 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 > > Any help would be appreciated. > > Kind regards > David Hingston > I would recommend you make a shell script, place it in /root/bin or something else sensible, and have cron call that. I think it's generally frowned upon to have excessive scripting directly in the crontab. The following script should do what you want: #!/bin/sh if ! ping -c1 203.97.234.1821>/dev/null 2>/dev/null then ifconfig em0 down && ifconfig em0 up fi