Har knåpat ihop ett litet program till min mac mini som ska kolla ifall jag har kontakt med internet och om jag inte har det så ska min TellStick starta om routern enligt nedan:
#!/bin/bash
if ! [ "`ping -c 1 google.com`" ]; then
/usr/bin/tdtool --off 1
sleep 5
/usr/bin/tdtool --on 1
echo REBOOT `date` >> /router_reboot.txt
else
echo OK `date` >> /router_reboot.txt
fi
Detta är skapat i Automator genom att lägga in en "Kör kommandotolksskript" med koden ovan och sen testat sparat det både som workflow och program.
Allt fungerar precis som det ska när jag testar i Automator och när jag startar worlflowet eller programmet manuellt. Men när jag lägger in det i en cronjob enligt "/usr/bin/open /Users/URS/Desktop/internet_check.app" så startar programmet som det ska men jag får aldrig kontakt med internet även om jag har det vilket resulterar i att den alltid startar om routern oavsett om den ska det eller inte.
Kom precis på att man ju kan "schemalägga" genom iCal också. Man lägger till en händelse i kalendern och under påminnelse väljer man att den ska starta en viss fil.
Gjorde så nu och startade min internet_check.workflow och då fungerade allt utmärkt :)
Men eftersom jag vill att den här kollen ska utföras var 5:e minut blir det många händelser och det är ju inte funktionellt tyvärr. Men det verkar ju iallafall vara nått med rättigheterna eller liknande eftersom det funkar från iCal men inte med cronjob (som jag lägger till via CronniX). Nån som har nån idé om hur man löser detta?
Tack för tipset, men nu kommer min okunskap in i bilden ;) Var hittar jag hela sökvägen till ping? Har testat med /usr/bin/ping men det hjälpte inte.
Meckade ihop ett workflow med dels koden ovan och sen också så att den la till ett nytt event i kalendern 5 minuter fram i tiden med en påminnelse som drog i gång skriptet igen. Det fungerar galant men skulle gärna vilja slippa iCal för schemaläggningen.
Det som körs via cron har oftast inte samma inställningar som om man körde dom manuellt (PATH och liknande).
Helt riktigt! Vill bara lägga till att det beror på att cron inte har några konfigurationsfiler att hämta miljövariabler från, typ ~/.bashrc, ~/.profile eller /etc/profile.
Förutom att ange hela sökvägen till (i det här fallet) ping, kan man i början av sina bash-script läsa in en eller flera konfigurationsfiler;
#!/bin/bash
. /etc/profile
...
134 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe