Samodejen start računalnika vsak delovni dan
Računalnik bi rad nastavil, da se vsak delovni dan samodejno zažene (če nisem zraven) ob določenem času in odpre spletno stran.
Našel sem delno rešitev.
Ukaz pripravi računalnik na zagon ob določenem času. Vendar jaz ne bi rad tega vsak dan vpisoval.
Za odpiranje spletne strani sem nastavil Alarm-Clock, ki dela dovolj dobro. Bi pa ukinil Alarm-Clock, če je možna nastavitev v enem koraku!
Našel sem delno rešitev.
sudo rtcwake -m no -l -t $(date +%s -d 'tomorrow 06:30')
Ukaz pripravi računalnik na zagon ob določenem času. Vendar jaz ne bi rad tega vsak dan vpisoval.
Za odpiranje spletne strani sem nastavil Alarm-Clock, ki dela dovolj dobro. Bi pa ukinil Alarm-Clock, če je možna nastavitev v enem koraku!
Komentarji
Če pa je petek pa nastaviš da se zažene šele v ponedeljek.
Sem pravkar poskusil zadevo urediti s crontab-om. Pa imam težave. Instaliral sem gnome-schedule in poskusil tam.
Natavil sem opravilo (kot root):
vendar ko ga hočem shraniti mi javi napako. Parameter %s se ne sklada z opravilom cron. Piše naj namesto tega uporabim redirekcijo |. Tu pa se mi zalomi. Parameter %s so sekunde, ki jih je treba dati rtcwake programu. Moj mlinček nima UEFI biosa. Malo starejši notesnik.
Sam bi lepo spisal en bash skript ki naredi nekaj v smislu
To je tako površno napisano (bolj psevdo koda recimo temu) in ni po bash pravilih.
Nato bi shranil ta skript in bi dal v cron da se zažene daily ob recimo 10.00, ko je računalnik prižgan.
Problem je v zgoraj omenjenem stavku, ki ga izvaja cron. Pri zagonu javi napako:
'Odvečen parameter -d'
Sedaj imam takšen skript.
Problem je v stavku: rtcwake -m no -l -t $(date +%s -d 'monday 09:20')
Pri izvedbi iz crona javi odvečen parameter -d. Moral bi uporabiti nekakšen redirekt.
Tudi če poskusim dati čas v spremenljivko javi isto napako.
Ponedeljek=$(date +%s -d 'monday 09:20')
Echo $ponedeljek dela v redu, medtem ko :
"rtcwake -m no -l -t $Ponedeljek" javi napako.
Če zadevo poganjam v terminalu pa ne dela težav. Torej nek problem v cronu.
Če v cronu testiram ta ukaz:
rtcwake -m no -l -t $(date +%s -d 'monday 09:20')
mi javi opozorilo:
Poskusil sem dodati \ pred %s, vendar ni zaleglo!
P.s. Za primerjavo števil uporabi -eq.
Na žalost mi cron danes ni izvedel naročenega. Ne samo, da se ni pognal notesnik tudi ni odprl spletne strani kot sem testno naročil.
Tukaj je testna skripta, ki pa je cron ne izvede kot pričakovano:
In ekran pripreiskusu:
Izpisal je samo prvi dve spremenljivki!
Kot vidiš mu '-eq' tudi ni všeč!
Works for me
Torej v mojem primeru se je cronjob zagnal vsako minuto.. for testing purposes
Pa tvoj bash skript nima pravilne sintakse.
if [ "$danes" -eq 7 ] ; then
echo "bla bla"
else
echo "bla bla1"
Če prav razumem se string "$danes" spremeni v število!
V cronu mi še vedno ne dela odpiranje spletne strani recimo.
dusan@LifeBook:/home$ crontab -l
31 9 * * 1-5 firefox https://www.bla.bla/ # JOB_ID_2
* * * * * /home/dusan/Temp/test1.sh # JOB_ID_3
Sem spremenil, da naj vsako minuto odpre spletno stran, pa se nič ne zgodi.
$danes spremenljivka ima no danes vrednost 1 ker je ponedeljek.
Pred firefox moraš dodat še 'export DISPLAY=:0 &&'
Ali pa spet vse lepo daš v en skript
Samo še, da mi zbudi mlinček pa bo v redu!
Sedaj imam takšen skript:
Skripta se požene 15 minut po tem ko bi se naj kalkulator zbudil!
Za jutrišnje bujenje bom nastavil ročno potem pa bomo videli!
Bom poročal kako se bo izteklo.
Ker drugače ti rtcwake ne bo čisto nič naredil ampak bo permission denied
35 9 * * 1-5 /home/dusan/Sistem/bujenje.sh # JOB_ID_6
gnome-schedule sem pognal kot root!
moraš dodat /bin/bash /home/dusan/blabla
root@LifeBook:~# crontab -l
35 9 * * 1-5 /bin/bash /home/dusan/Sistem/bujenje.sh # JOB_ID_6
In sedaj še končna skripta, če bi še komu koristila:
Pri petku je bilo potrebno dodati 'next monday', ker drugače je kazal na minuli ponedeljek!
Ali da vprašam drugače! Kako napisati skripto, da se požene pred vsakim spanjem?
Za skript pa https://askubuntu.com/questions/250690/how-to-run-a-script-when-suspending-resuming-sony-vaio-ubuntu-12-04
Vendar sem sedaj večkrat zadevo pognal ročno.
Sem še kar testiral in zadeva je taka. Če poženem skripto iz terminala, se lepo izvedejo vsi ukazi!
Ko pa je bila skripta pognana od crona pa se ni izvedel ukaz rtcwake xxxxxxxxx!
Po sistemu preizkušanja sem prišel do verjetno delujoče verzije tako, da sem v skripti dodal pot do rtcwake:
/usr/sbin/rtcwake xxx xxx xxxx!
V testnem logu sedaj vidim, da se tudi rtcwake požene. Bom videl kaj bo jutri!
Pomeni, da bi moral zagnati skripto tudi ob zagonu!