Trädvy Permalänk
Medlem
Plats
LKPG
Registrerad
Jun 2009

Linux crontab -e

Hej.
Vet ej om detta borde postas under linux eller programmering.
Men jag håller på att lära mig lite Linux nu och jag är inne på crontab -e.
Det jag vill göra är att köra ett script via crontab -e , scriptet ligger på min desktop så jag undrar hur jag ska aktivera den via crontab.
Jag försökte med bash "namnet på skriptet" men det gick inte och bash Desktop/"namnet på skriptet" men det gick inte heller.

Vet någon hur jag ska gå till väga för att få shellscriptet att aktiveras via crontab?

Core i5 750, Xfx radeon 5850 black edition, 8gb corsair dominator 1600 mhz, Asus p7p55d PRO, Velociraptor 150GB, Samsug 1TB, Antec 902, Zalman cnps10X extreme, corsair 650W.

Trädvy Permalänk
Medlem
Plats
Upplands Väsby
Registrerad
Jun 2008

@Laforge:
vad är det som händer när du försöker köra skriptet via cron?

först och främst så ska ditt skript vara exekverbart.
sen lägger du till skriptet i cron med hjälp va crontab

där du kan lägga din crontab definition i en fil och sedan ladda crontab definitionen med
typ
crontab "mycrontab"

där min mycrontab kan se ut som typ:

* * * * * /home/kalle/mittscript.sh

Trädvy Permalänk
Medlem
Plats
LKPG
Registrerad
Jun 2009

Jag har tidigare kört andra kommandon via crontab och det gick ju men nu försöker jag köra ett script som är sparat i desktop och vet inte hur jag ska säga till crontab att aktivera den.
Just nu händer inget eftersom jag antar att den inte uppfattar vart scriptet ska ligga.

Scriptet funkar utan crontab btw så det är inget fel där iaf.

jag kör bara crontab -e men det ska alltså funkaom jag skriver bash home/user/Desktop/scriptet?

Core i5 750, Xfx radeon 5850 black edition, 8gb corsair dominator 1600 mhz, Asus p7p55d PRO, Velociraptor 150GB, Samsug 1TB, Antec 902, Zalman cnps10X extreme, corsair 650W.

Trädvy Permalänk
Medlem
Plats
Upplands Väsby
Registrerad
Jun 2008

@Laforge:
varför inte lägga skriptet i /home/user?

med crontab -e så redigerar du vilka crontab definitioner som körs
med crontab -l så listar du vilka cron jobb som ligger definierade

vad visar? crontab -l

Trädvy Permalänk
Medlem
Plats
LKPG
Registrerad
Jun 2009

den visar det jag skrivit dit, dvs det som inte funkar än.
32 22 * * * bash /home/user/Desktop/scriptet.sh
jag valde att ha scriptet i Desktop eftersom jag vill lära mig hur man löser det

Core i5 750, Xfx radeon 5850 black edition, 8gb corsair dominator 1600 mhz, Asus p7p55d PRO, Velociraptor 150GB, Samsug 1TB, Antec 902, Zalman cnps10X extreme, corsair 650W.

Trädvy Permalänk
Medlem
Plats
Upplands Väsby
Registrerad
Jun 2008

@Laforge:
då borde funka förutsatt att du kan exekvera scriptet med den sökvägen utan cron

Trädvy Permalänk
Medlem
Plats
Långtbortistan
Registrerad
Mar 2007

Hur ser scriptet ut och vad har filen för rättigheter? Kan du köra scriptet manuellt?

Du bör inte behöva ange "bash" i crontab om du gjort resten rätt.

Skickades från m.sweclockers.com

Det finns bara två sorters hårddiskar: de som har gått sönder och de som skall gå sönder.

Trädvy Permalänk
Medlem
Plats
LKPG
Registrerad
Jun 2009

Om jag är inne i Desktop o skriver bash scriptet.sh så funkar det.
Men i crontab så har jag skrivit bash /home/user/Desktop/scriptet.sh och då funkar det ej.
kanske är något jag glömt bort i sökvägen, kanske ska skriva med /bin/sh eller så?

Core i5 750, Xfx radeon 5850 black edition, 8gb corsair dominator 1600 mhz, Asus p7p55d PRO, Velociraptor 150GB, Samsug 1TB, Antec 902, Zalman cnps10X extreme, corsair 650W.

Trädvy Permalänk
Medlem
Plats
Upplands Väsby
Registrerad
Jun 2008

@Laforge:
kan vara så att du måste lägga till #! /usr/bin/sh

Trädvy Permalänk
Medlem
Plats
LKPG
Registrerad
Jun 2009

Detta kommer låta som om jag inte kan något men jag är ju nybörjare.
Menar du i scriptet eller i crontab?

Core i5 750, Xfx radeon 5850 black edition, 8gb corsair dominator 1600 mhz, Asus p7p55d PRO, Velociraptor 150GB, Samsug 1TB, Antec 902, Zalman cnps10X extreme, corsair 650W.

Trädvy Permalänk
Medlem
Plats
Sturup
Registrerad
Jan 2007

I scriptet.
Kan även vara en ide att lägga till /bin/bash i crontab

Skickades från m.sweclockers.com

Trädvy Permalänk
Medlem
Plats
Upplands Väsby
Registrerad
Jun 2008

@Laforge:
Skriptet

Trädvy Permalänk
Medlem
Plats
LKPG
Registrerad
Jun 2009

I scriptet har jag redan skrivit #!/bin/bash i början, scriptet funkar som sagt.

Core i5 750, Xfx radeon 5850 black edition, 8gb corsair dominator 1600 mhz, Asus p7p55d PRO, Velociraptor 150GB, Samsug 1TB, Antec 902, Zalman cnps10X extreme, corsair 650W.

Trädvy Permalänk
Medlem
Plats
London / Göteborg
Registrerad
Jul 2007
Skrivet av Laforge:

den visar det jag skrivit dit, dvs det som inte funkar än.
32 22 * * * bash /home/user/Desktop/scriptet.sh
jag valde att ha scriptet i Desktop eftersom jag vill lära mig hur man löser det

Skrivet av Laforge:

Detta kommer låta som om jag inte kan något men jag är ju nybörjare.
Menar du i scriptet eller i crontab?

I från terminalen:

~/Desktop$ chmod +x scriptet.sh

(Det fetstilta ska du inte skriva, utan betyder att du står i Desktop-katalogen).
chmod +x sätter eXecutable-flaggan på scriptet.sh.
Överst i ditt script skriver du sedan

#!/bin/bash

, det innebär att det är bash som ska tolka ditt script.

Därefter tar du bort bash i din crontab, så den ser ut typ

32 22 * * * /home/user/Desktop/scriptet.sh

(Anledningen är troligen att cron inte vet var bash ligger iom att den troligen inte har tillgång till din path. Ett alternativ är att ändra bash i crontab till /bin/bash , dvs hela pathen till bash).

Om det fortfarande inte fungerar, kan du ta reda på var bash ligger (om det är så att det inte är /bin/bash)

$ whereis bash

Hoppas det löser sig!
/Zyber

EDIT: ändrade crontab-raden.

WS: Bärbar workstation, 2 * Dell U2412M
HTPC: Intel NUC, Canton GLE 496, Yamaha RV-A830, Sanyo PLV-Z700
Server: Intel Xeon E3-1240@3.4 GHz, ESXi, 16GB RAM, 8*2TB RAID-Z2 + SSD-cache
Slösurf: MacBook Air 11,6", Nokia Lumia 925, OnePlus Two
Kamera: Canon EOS 5DII + 1DIII, Canon 100/2.8 Macro, Canon 70-200/2.8L, Canon 24-70/2.8L

Trädvy Permalänk
Medlem
Plats
Upplands Väsby
Registrerad
Jun 2008
Trädvy Permalänk
Medlem
Plats
LKPG
Registrerad
Jun 2009

Jag har redan skrivit chmod 777 bara för att vara på den säkra sidan.
whereis bash säger helt enkelt /bin/bash.
Så jag bör skriva bash /bin/bash /home/user/Desktop/skriptet.sh? eller ska jag skippa bash i början?

Core i5 750, Xfx radeon 5850 black edition, 8gb corsair dominator 1600 mhz, Asus p7p55d PRO, Velociraptor 150GB, Samsug 1TB, Antec 902, Zalman cnps10X extreme, corsair 650W.

Trädvy Permalänk
Medlem
Plats
London / Göteborg
Registrerad
Jul 2007
Skrivet av Laforge:

Jag har redan skrivit chmod 777 bara för att vara på den säkra sidan.
whereis bash säger helt enkelt /bin/bash.
Så jag bör skriva bash /bin/bash /home/user/Desktop/skriptet.sh? eller ska jag skippa bash i början?

har du lagt #!/bin/bash i scriptet kan du skippa allt med bash i crontab över huvudtaget. Annars BARA /bin/bash /home/user/Desktop/skriptet.sh

Citera/pinga i framtiden för ännu snabbare svar

WS: Bärbar workstation, 2 * Dell U2412M
HTPC: Intel NUC, Canton GLE 496, Yamaha RV-A830, Sanyo PLV-Z700
Server: Intel Xeon E3-1240@3.4 GHz, ESXi, 16GB RAM, 8*2TB RAID-Z2 + SSD-cache
Slösurf: MacBook Air 11,6", Nokia Lumia 925, OnePlus Two
Kamera: Canon EOS 5DII + 1DIII, Canon 100/2.8 Macro, Canon 70-200/2.8L, Canon 24-70/2.8L

Trädvy Permalänk
Medlem
Plats
#Archlinux
Registrerad
Jun 2007

@Laforge: Snart en hel sida och fortfarande ingen har frågat efter själva skriptet... Kan du ladda upp det på någon paste för oss att se.

Arch - Makepkg, not war -||- Asus Crosshair Hero VI -||- GSkill 16GiB DDR4 15-15-15-35-1T 3600Mhz -||- AMD 1600x @ 4.1GHz -||- nVidia MSI 970 Gaming -||- Samsung 850 Pro -||- EVEGA G2 750W -||- Corsair 570x -||- Asus Xonar Essence STX -||- Sennheiser HD-650 -||
Arch Linux, one hell of a distribution.

Trädvy Permalänk
Medlem
Plats
Malmö
Registrerad
Feb 2013

Inne i crontab (crontab -e):

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin

33 20 * * 5 /path/to/script.sh

Citera för svar

- Stora Owncloud/Nextcloud-tråden: http://www.sweclockers.com/forum/122-server/1212245-officiell...
- Min blogg: Tech & Me https://www.techandme.se

Trädvy Permalänk
Medlem
Plats
LKPG
Registrerad
Jun 2009
Skrivet av zyberzero:

har du lagt #!/bin/bash i scriptet kan du skippa allt med bash i crontab över huvudtaget. Annars BARA /bin/bash /home/user/Desktop/skriptet.sh

Citera/pinga i framtiden för ännu snabbare svar

Funkar fortfarande inte även nu när jag har /bin/bash /home/user/Desktop/skriptet.sh
Men jag börjar misstänka att det kanske inte går köra detta specifika skriptet på detta sätt kanske då den ska mata ut datum och lista på mina filer och sedan föra det via >> till en text fil i Desktop.

Core i5 750, Xfx radeon 5850 black edition, 8gb corsair dominator 1600 mhz, Asus p7p55d PRO, Velociraptor 150GB, Samsug 1TB, Antec 902, Zalman cnps10X extreme, corsair 650W.

Trädvy Permalänk
Medlem
Plats
London / Göteborg
Registrerad
Jul 2007
Skrivet av Laforge:

Funkar fortfarande inte även nu när jag har /bin/bash /home/user/Desktop/skriptet.sh
Men jag börjar misstänka att det kanske inte går köra detta specifika skriptet på detta sätt kanske då den ska mata ut datum och lista på mina filer och sedan föra det via >> till en text fil i Desktop.

Då vill vi nog se skriptet. Troligen är det att du utgår från relativa sökvägar i ditt skript vilket kan få skriptet att balla ur. Du kan prova att lägga in cd /home/user/Desktop näst högst upp i ditt skript bara för att vara på säkra sidan.

WS: Bärbar workstation, 2 * Dell U2412M
HTPC: Intel NUC, Canton GLE 496, Yamaha RV-A830, Sanyo PLV-Z700
Server: Intel Xeon E3-1240@3.4 GHz, ESXi, 16GB RAM, 8*2TB RAID-Z2 + SSD-cache
Slösurf: MacBook Air 11,6", Nokia Lumia 925, OnePlus Two
Kamera: Canon EOS 5DII + 1DIII, Canon 100/2.8 Macro, Canon 70-200/2.8L, Canon 24-70/2.8L

Trädvy Permalänk
Medlem
Plats
LKPG
Registrerad
Jun 2009

Okej, scriptet ser ut såhär:

#!/bin/bash

echo "the date is" >> Result.txt
date >> Result.txt

Echo "files in the current directory are :" >> Result.txt
pwd >> Result.txt
ls >> Result.txt

Döm inte ut mitt simpla script nu bara =P

Core i5 750, Xfx radeon 5850 black edition, 8gb corsair dominator 1600 mhz, Asus p7p55d PRO, Velociraptor 150GB, Samsug 1TB, Antec 902, Zalman cnps10X extreme, corsair 650W.

Trädvy Permalänk
Medlem
Plats
London / Göteborg
Registrerad
Jul 2007
Skrivet av Laforge:

Okej, scriptet ser ut såhär:

#!/bin/bash

echo "the date is" >> Result.txt
date >> Result.txt

Echo "files in the current directory are :" >> Result.txt
pwd >> Result.txt
ls >> Result.txt

Döm inte ut mitt simpla script nu bara =P

som jag trodde. Bara för att skriptet ligger i ~/Desktop betyder det inte att det är det som används som kontext när skriptet startar. Prova att slänga på cd /home/user/Desktop efter #!/bin/bash.

WS: Bärbar workstation, 2 * Dell U2412M
HTPC: Intel NUC, Canton GLE 496, Yamaha RV-A830, Sanyo PLV-Z700
Server: Intel Xeon E3-1240@3.4 GHz, ESXi, 16GB RAM, 8*2TB RAID-Z2 + SSD-cache
Slösurf: MacBook Air 11,6", Nokia Lumia 925, OnePlus Two
Kamera: Canon EOS 5DII + 1DIII, Canon 100/2.8 Macro, Canon 70-200/2.8L, Canon 24-70/2.8L

Trädvy Permalänk
Medlem
Plats
LKPG
Registrerad
Jun 2009

Amen va bra nu funkar det =D
Tack så hemskt mycket för er hjälp nu kan jag försöka lära mig scripta lite mer avancerade saker och testa dem via crontab.
Försökte lösa det genom att googla men det var så många olika anledningar och alternativ, er hjälp var mycket mer effektivt.

Core i5 750, Xfx radeon 5850 black edition, 8gb corsair dominator 1600 mhz, Asus p7p55d PRO, Velociraptor 150GB, Samsug 1TB, Antec 902, Zalman cnps10X extreme, corsair 650W.