Permalänk
Medlem

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?

Visa signatur

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.

Permalänk
Medlem

@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

Permalänk
Medlem

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?

Visa signatur

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.

Permalänk
Medlem

@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

Permalänk
Medlem

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

Visa signatur

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.

Permalänk
Medlem

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

Permalänk
Medlem

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

Visa signatur

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

Permalänk
Medlem

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å?

Visa signatur

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.

Permalänk
Medlem

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

Permalänk
Medlem

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

Visa signatur

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.

Permalänk
Medlem

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

Skickades från m.sweclockers.com

Permalänk
Medlem
Permalänk
Medlem

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

Visa signatur

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.

Permalänk
Medlem
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.

Visa signatur

Jag är en optimist; det är aldrig så dåligt så att det inte kan bli sämre.

Permalänk
Permalänk
Medlem

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?

Visa signatur

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.

Permalänk
Medlem
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

Visa signatur

Jag är en optimist; det är aldrig så dåligt så att det inte kan bli sämre.

Permalänk
Medlem

@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.

Visa signatur

Arch - Makepkg, not war -||- Gigabyte X570 Aorus Master -||- GSkill 64GiB DDR4 14-14-15-35-1T 3600Mhz -||- AMD 5900x-||- Gigabyte RX6900XT -||- 2x Adata XPG sx8200 Pro 1TB -||- EVGA G2 750W -||- Corsair 570x -||- O2+ODAC-||- Sennheiser HD-650 -|| Boycott EA,2K,Activision,Ubisoft,WB,EGS
Arch Linux, one hell of a distribution.

Permalänk
Medlem

Inne i crontab (crontab -e):

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

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

Visa signatur

Citera för svar

Stora Owncloud/Nextcloud-tråden: http://www.sweclockers.com/forum/122-server/1212245-officiell...
Jobb: Datacenter Manager
Grundare: https://www.hanssonit.se

Permalänk
Medlem
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.

Visa signatur

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.

Permalänk
Medlem
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.

Visa signatur

Jag är en optimist; det är aldrig så dåligt så att det inte kan bli sämre.

Permalänk
Medlem

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

Visa signatur

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.

Permalänk
Medlem
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.

Visa signatur

Jag är en optimist; det är aldrig så dåligt så att det inte kan bli sämre.

Permalänk
Medlem

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.

Visa signatur

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.