Acties:
  • 0 Henk 'm!

  • Jeroen_ae92
  • Registratie: April 2012
  • Laatst online: 12-09 16:54
Heren,

Kunnen jullie wellicht meedenken in een schedule die ik wil maken die een aantal Ubiquiti mFi devices middels ssh op "aan" zet?

Ik kan middels het volgende script de sunset tijd uitlezen en opslaan:
code:
1
echo Sunset is at `l=731469;curl -s http://weather.yahooapis.com/forecastrss?w=$l|grep astronomy| awk -F\" '{print $4}'` -> /tmp/sunset.txt


Hier wil ik 15 minuten van afhalen en dan schedulen op die tijd. Dus vandaag is de sunset om 8:59 pm - 15 minuten is 8:44 pm. Om die 8:44 pm moet er dan meerdere ssh commando's afgevuurd worden. Namelijk:
code:
1
ssh -t username@mfiipaddress 'echo 1 > /proc/power/relay1'


Hoe kan ik dit voor mekaar boxen? Ik mis dus de koppeling tussen ophalen van de tijd, het min 15 minuten stuk en het afvuren van de ssh commando's.

U+


Acties:
  • 0 Henk 'm!

  • DiedX
  • Registratie: December 2000
  • Laatst online: 14-09 09:51
Had date niet ook de mogelijkheid om -15 te doen?

http://stackoverflow.com/...10-mins-from-a-given-time

?

[ Voor 48% gewijzigd door DiedX op 17-08-2014 11:24 ]

DiedX supports the Roland™, Sound Blaster™ and Ad Lib™ sound cards


Acties:
  • 0 Henk 'm!

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 14:49

Kees

Serveradmin / BOFH / DoC
Kijk eens naar at.

Iets als dit zou moeten werken
code:
1
2
3
echo "ssh -t username@mfiipaddress 'echo 1 > /proc/power/relay1'" > sshcommand
sunset=`l=731469;curl -s http://weather.yahooapis.com/forecastrss?w=$l|grep astronomy| awk -F\" '{print $4 $5}'`
at -f sshcommand  $sunset - 15 minutes

[ Voor 8% gewijzigd door Kees op 17-08-2014 11:36 ]

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


Acties:
  • 0 Henk 'm!

  • Jeroen_ae92
  • Registratie: April 2012
  • Laatst online: 12-09 16:54
Maar is dit een commando wat bv één keer per dag loopt en die om de time -15 het commando ssh commando uitvoert?

Ik had wel nog deze gevonden: http://remco.bierings.eu/?p=9
Ziet er mooi uit maar als ik em test krijg ik date: illegal option

Ik zal jou suggestie gaan proberen. Nog even uitpluizen of dit ook met sshpass werkt.

Dank je wel voor je suggestie!

EDIT: De output:
code:
1
2
Mac-mini-van-Jeroen:~ jeroen$ ./putlightson.sh 
at: garbled time

[ Voor 12% gewijzigd door Jeroen_ae92 op 17-08-2014 12:02 ]

U+


Acties:
  • 0 Henk 'm!

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 14:49

Kees

Serveradmin / BOFH / DoC
Jeroen_ae92 schreef op zondag 17 augustus 2014 @ 11:44:

EDIT: De output:
code:
1
2
Mac-mini-van-Jeroen:~ jeroen$ ./putlightson.sh 
at: garbled time
Wat geef je dan precies mee aan at?

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


Acties:
  • 0 Henk 'm!

  • Jeroen_ae92
  • Registratie: April 2012
  • Laatst online: 12-09 16:54
In de putlightson.sh staat nu dit:

code:
1
2
3
echo "sshpass -p 'password ssh -t username@ipaddress 'echo 1 > /proc/power/relay3'" > sshcommand
sunset=`l=731469;curl -s http://weather.yahooapis.com/forecastrss?w=$l|grep astronomy| awk -F\" '{print $4 $5}'`
at -f sshcommand  $sunset - 15 minutes


Wellicht het vermelden waard, ik doe dit op een mac. Moet m.i. niet uitmaken.

U+


Acties:
  • 0 Henk 'm!

  • vanaalten
  • Registratie: September 2002
  • Laatst online: 18:33
Eh, tja, Kees schreef bij die voorbeeldcode "Iets als dit zou moeten werken"... zonder garanties, dus zal je nog moeten debuggen. Kwestie van die 2e regel even los in een terminal uitvoeren en kijken wat $sunset voor waarde krijgt - en van daaruit verder zoeken.

Hint: het zit enigzins fout in het awk stukje.

(hmmm, als ik die suggestie-code van Kees vergelijk met wat er in de TS staat, dan krijg ik bijna de indruk dat Kees expres die fout er in heeft gezet... )

[ Voor 20% gewijzigd door vanaalten op 17-08-2014 12:51 ]


Acties:
  • 0 Henk 'm!

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 14:49

Kees

Serveradmin / BOFH / DoC
Ah ja, dat had ik niet goed getest, maar dan geeft hij dus '8:59 pm/>' aan at mee. Die /> moet er dan nog even af;

code:
1
2
3
echo "sshpass -p 'password ssh -t username@ipaddress 'echo 1 > /proc/power/relay3'" > sshcommand
sunset=`l=731469;curl -s http://weather.yahooapis.com/forecastrss?w=$l|grep astronomy| awk -F\" '{print $4 $5}' | cut -d"/" -f1`
at -f sshcommand  $sunset - 15 minutes

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


Acties:
  • 0 Henk 'm!

  • vanaalten
  • Registratie: September 2002
  • Laatst online: 18:33
Kees schreef op zondag 17 augustus 2014 @ 12:51:
Ah ja, dat had ik niet goed getest, maar dan geeft hij dus '8:59 pm/>' aan at mee. Die /> moet er dan nog even af;

code:
1
2
3
echo "sshpass -p 'password ssh -t username@ipaddress 'echo 1 > /proc/power/relay3'" > sshcommand
sunset=`l=731469;curl -s http://weather.yahooapis.com/forecastrss?w=$l|grep astronomy| awk -F\" '{print $4 $5}' | cut -d"/" -f1`
at -f sshcommand  $sunset - 15 minutes
Wat is er mis met die tweede regel aanpassen zoals min of meer in de TS staat:
code:
1
2
3
echo "sshpass -p 'password ssh -t username@ipaddress 'echo 1 > /proc/power/relay3'" > sshcommand
sunset=`l=731469;curl -s http://weather.yahooapis.com/forecastrss?w=$l|grep astronomy| awk -F\" '{print $4}'`
at -f sshcommand  $sunset - 15 minutes

Lijkt mij toch simpeler, of zie ik dan iets over het hoofd?

Acties:
  • 0 Henk 'm!

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 14:49

Kees

Serveradmin / BOFH / DoC
vanaalten schreef op zondag 17 augustus 2014 @ 12:53:
[...]

Wat is er mis met die tweede regel aanpassen zoals min of meer in de TS staat:
code:
1
2
3
echo "sshpass -p 'password ssh -t username@ipaddress 'echo 1 > /proc/power/relay3'" > sshcommand
sunset=`l=731469;curl -s http://weather.yahooapis.com/forecastrss?w=$l|grep astronomy| awk -F\" '{print $4}'`
at -f sshcommand  $sunset - 15 minutes

Lijkt mij toch simpeler, of zie ik dan iets over het hoofd?
Nee, met 8:59 gaat hij 8:59 in de ochtend pakken dus moet je er 20:59 van maken of 8:59 pm, en die pm staat al in de output (alleen dus met de /> erachter)

[ Voor 5% gewijzigd door Kees op 17-08-2014 12:56 ]

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


Acties:
  • 0 Henk 'm!

  • Jeroen_ae92
  • Registratie: April 2012
  • Laatst online: 12-09 16:54
Als ik de regel aanpas met | sed 's/.\{2\}$//' is de output keurig sunset=8:59 pm.
Prop ik het vervolgens in een script fan krijg ik weird genoeg de volgende meldingen:
./putlightson.sh: line 2: unexpected EOF while looking for matching ``'
./putlightson.sh: line 4: syntax error: unexpected end of file

Inhoud van het script is nu:
code:
1
2
3
echo "sshpass -p 'password' ssh -t username@ipaddress 'echo 1 > /proc/power/relay1'" > sshcommand
sunset=`l=731469;curl -s http://weather.yahooapis.com/forecastrss?w=$l|grep astronomy| awk -F\" '{print $4 $5}' | sed 's/.\{2\}$//'
at -f sshcommand $sunset - 15 minutes


Volgens mij ben ik er namelijk bijna

U+


Acties:
  • 0 Henk 'm!

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 14:49

Kees

Serveradmin / BOFH / DoC
je mist een ` aan het einde van de regel

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


Acties:
  • 0 Henk 'm!

  • Jeroen_ae92
  • Registratie: April 2012
  • Laatst online: 12-09 16:54
Output van:
echo sunset=`l=731469;curl -s http://weather.yahooapis.com/forecastrss?w=$l|grep astronomy| awk -F\" '{print $4 $5}'` | sed 's/.\{2\}$//'
sunset=8:59 pm

Output van: ./putlightson.sh
Mac-mini-van-Jeroen:~ jeroen$ ./putlightson.sh
at: garbled time

EDIT: Als ik de - 15 minutes eraf haal krijg ik een usage: at file. Lijkt dus ergens fout te gaan op de at volgorde. Ik zoek gewoon verder :-)

[ Voor 23% gewijzigd door Jeroen_ae92 op 17-08-2014 13:45 ]

U+


Acties:
  • 0 Henk 'm!

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 14:49

Kees

Serveradmin / BOFH / DoC
en wat geeft puur:
at 8:59 pm - 15 minutes
intypen? (zou een at> commandline op moeten leveren)

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


Acties:
  • 0 Henk 'm!

  • Jeroen_ae92
  • Registratie: April 2012
  • Laatst online: 12-09 16:54
Output is dan: at: garbled time

U+


Acties:
  • 0 Henk 'm!

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 14:49

Kees

Serveradmin / BOFH / DoC
dan moet je even kijken in de man page wat voor jouw os de juiste syntax is

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


Acties:
  • 0 Henk 'm!

  • Jeroen_ae92
  • Registratie: April 2012
  • Laatst online: 12-09 16:54
Hij gaat op z'n snufferd met de variabele $sunset.
Als ik het volgende doe werkt het wel gewoon :-(

code:
1
2
echo "sshpass -p 'password' ssh -t username@ipaddress 'echo 1 > /proc/power/relay1'" > sshcommand
at -f sshcommand 8:59pm


Even zoeken hoe ik die variabele er wel in krijg.

U+


Acties:
  • 0 Henk 'm!

  • Sprite_tm
  • Registratie: September 2002
  • Laatst online: 11-08 04:52

Sprite_tm

Semi-Chinees

Waarom een externe service gebruiken als de zonsopgangs/ondergangstijden gewoon te berekenen zijn? Kan je niet iets als http://www.risacher.org/sunwait/ gebruiken? Of misschien heb je remind in je repo zitten, die kan ook op sunset etc dingen uitvoeren.

[ Voor 29% gewijzigd door Sprite_tm op 17-08-2014 15:03 ]

Relaxen und watchen das blinkenlichten. | Laatste project: Ikea Frekvens oog


Acties:
  • 0 Henk 'm!

  • Jeroen_ae92
  • Registratie: April 2012
  • Laatst online: 12-09 16:54
Goed, al lekker op weg maar er nog niet over uit. De Mac kan ook nog zoiets doen als pbcopy en pbpaste.
Script komt er dan zo uit te zien:

code:
1
2
sunset=`l=731469;curl -s http://weather.yahooapis.com/forecastrss?w=$l|grep astronomy| awk -F\" '{print $4 $5}'` | sed 's/^.......//' | sed 's/ //g' | sed 's/.\{2\}$//' | pbcopy
at -f sshcommand pbpaste


output: at: trying to travel back in time

:(

U+


Acties:
  • 0 Henk 'm!

  • Jeroen_ae92
  • Registratie: April 2012
  • Laatst online: 12-09 16:54
En het werkt. Het was even trukendozen maar dan heb je ook wat.

code:
1
2
3
4
5
echo "sshpass -p 'password' ssh -t username@ipaddress 'echo 1 > /proc/power/relay1'" > sshcommand
echo sunset=`l=731469;curl -s http://weather.yahooapis.com/forecastrss?w=$l|grep astronomy| awk -F\" '{print $4 $5}'` | sed 's/^.......//' | sed 's/ //g' | sed 's/.\{2\}$//' | pbcopy
echo `pbpaste`
output=`pbpaste`
at -f sshcommand $output

U+


Acties:
  • 0 Henk 'm!

  • Rainmaker
  • Registratie: Augustus 2000
  • Laatst online: 14-07-2024

Rainmaker

RHCDS

Die /> staat er alleen achter omdat je nu "ineens" $5 ook print.

Ik zou m zo doen:
code:
1
$ echo ssh -p password -u rainmaker | at $(date +%R --date=$(curl -s http://weather.yahooapis.com/forecastrss?w=731469|grep astronomy| awk -F\" '{print $4}' | sed 's/ //g')) - 15 minutes


In bovenstaande mis je de $ voor sshcommand b.t.w.

We are pentium of borg. Division is futile. You will be approximated.


Acties:
  • 0 Henk 'm!

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Sprite_tm schreef op zondag 17 augustus 2014 @ 14:59:
Waarom een externe service gebruiken als de zonsopgangs/ondergangstijden gewoon te berekenen zijn? Kan je niet iets als http://www.risacher.org/sunwait/ gebruiken? Of misschien heb je remind in je repo zitten, die kan ook op sunset etc dingen uitvoeren.
Dit. Al dit soort datum/tijd dingen zijn berekenbaar dus vertrouwen op een externe dienst met awk scripts is bepaald niet de beste manier om dit te doen. Ik durf te wedden dat als je dat wel doet, dat 't binnen een jaar stuk gaat omdat yahoo net iets simpels heeft veranderd aan de output.

All my posts are provided as-is. They come with NO WARRANTY at all.

Pagina: 1