• Opret dig
  • Glemt adgangskode

User account menu

  • Artikler
  • Forside
  • Forum
  • Nyheder
  • Log ind
Hjem
LinuxIN.dk

Snak med

Opret dig!

Af anlnx | 09.12.2008 15:57

Crontab og bash script

Hjælp generelt
Hej .. jeg lavede et bash script her i dag, som jeg gerne vil have bliver kørt med så og så mange minutters mellemrum, men jeg kan ikke få crontab til at virke, selvom jeg har kigget over hele nettet efter hvordan man skal gøre. Her er der hvordan jeg har skrevet i min crontab:

* * * * * /home/mig/scripts/script.sh

Jeg har prøvet mange andre ting. Jeg kan se i systemloggen at den bliver kørt hvert minut. Men scriptet bliver bare ikke udført. Når man kører scriptet normalt virker det perfekt, så kan ikke forstå hvad der er galt. : /

Er der nogen, der har en ide om hvad det kan være ?
  • Log ind eller opret dig for at tilføje kommentarer

Kommentarer34

# 1

16 år 7 måneder siden

Permalink

Indsendt af divineant den 9. december 2008 kl. 17:57

Permalink

Re: Crontab og bash script

har du husket at give scriptet execute rettigheder?

chmod +x script.sh
  • Log ind eller opret dig for at tilføje kommentarer

# 2

16 år 7 måneder siden

Permalink

Indsendt af anlnx den 9. december 2008 kl. 19:03

In reply to Re: Crontab og bash script by divineant

Permalink

Re: Re: Crontab og bash script

Ja. Det virker fint nok når jeg bare kører det normalt, men det vil slet ikke køre når crontab skal køre det ./
  • Log ind eller opret dig for at tilføje kommentarer

# 3

16 år 7 måneder siden

Permalink

Indsendt af divineant den 9. december 2008 kl. 22:12

Permalink

Re: Crontab og bash script

hvordan kører du det normalt?

./script.sh
bash script.sh

Hvis du benytter den nederste metode så vil den kunne køre den ligegyldigt om dine permisions er korrekte eller ej. den øverste derimod kræver execute permisions og en "shebang" linie: #!/bin/bash
  • Log ind eller opret dig for at tilføje kommentarer

# 4

16 år 7 måneder siden

Permalink

Indsendt af anlnx den 9. december 2008 kl. 22:33

In reply to Re: Crontab og bash script by divineant

Permalink

Re: Re: Crontab og bash script

Jeg benytter den øverste, og har den "shebang" linie med i toppen af scriptet.
  • Log ind eller opret dig for at tilføje kommentarer

# 5

16 år 7 måneder siden

Permalink

Indsendt af tkjacobsen den 9. december 2008 kl. 22:55

In reply to Re: Re: Crontab og bash script by anlnx

Permalink

Re: Re: Re: Crontab og bash script

Har du cron daemon kørende?
/etc/init.d/crond status
(eller på arch er det vidst /etc/rc.d/crond status)
Hos mig giver den:
crond (pid 2432) is running...
Den skal helst sige noget lignende.
  • Log ind eller opret dig for at tilføje kommentarer

# 6

16 år 7 måneder siden

Permalink

Indsendt af anlnx den 9. december 2008 kl. 23:17

In reply to Re: Re: Re: Crontab og bash script by tkjacobsen

Permalink

Re: Re: Re: Re: Crontab og bash script

prøvede at skrive og finde /etc/init.d/crond status, men får tilbage: no such file or directory.
prøvede med /etc/init.d/cron status, hvorefter den skriver: * cron is running.

skal det være crond eller cron ?

for hvis det skal være crond, så er der vist noget galt med daemonen ja..
  • Log ind eller opret dig for at tilføje kommentarer

# 7

16 år 7 måneder siden

Permalink

Indsendt af divineant den 9. december 2008 kl. 22:56

Permalink

Re: Crontab og bash script

så er det tilbageværende jeg kan komme på at du i dit script benytter relative stier til whatever du opererer på i dit script.

crontab vil som default sætte dit current working dir til ~ mm du angiver andet i dit script
  • Log ind eller opret dig for at tilføje kommentarer

# 8

16 år 7 måneder siden

Permalink

Indsendt af anlnx den 9. december 2008 kl. 23:20

Permalink

Re: Crontab og bash script

Relative stier ? mener du stier som ikke er helt defineret fra /home/osv.. ? eller nogle som slet ikke er der ?
  • Log ind eller opret dig for at tilføje kommentarer

# 9

16 år 7 måneder siden

Permalink

Indsendt af divineant den 9. december 2008 kl. 23:23

Permalink

Re: Crontab og bash script

du skrev jo tidligere at syslog registrerede at den kørte, så mon ikke din cron er fin, har du rettet dine stier som jeg skrev i #6

EDIT:
relative stier er alle stier som ikke starter med /home/user/osv.. men istedet er af formen ../../filnavn

du kan i starten ad dit script blot skrive cd /full/path/to/script/dir så skulle alt være godt
  • Log ind eller opret dig for at tilføje kommentarer

# 10

16 år 7 måneder siden

Permalink

Indsendt af anlnx den 9. december 2008 kl. 23:35

Permalink

Re: Crontab og bash script

Har hele tiden brugt fulde stier, men har dog fundet en kommando, som benytter sig af en sti jeg ikke lige ved hvor befinder sig. Kan forestille mig det måske er der problemet ligger. Vil lige prøve at undersøge det.

Prøver også det med at skrive stien i toppen :)
  • Log ind eller opret dig for at tilføje kommentarer

# 11

16 år 7 måneder siden

Permalink

Indsendt af divineant den 9. december 2008 kl. 23:57

Permalink

Re: Crontab og bash script

du kan jo også prøve at redirecte output af dit script til en fil så du kan se om den giver fejlmeddelelser

* * * * * /sti/til/script.sh 2> /home/bruger/script.log
  • Log ind eller opret dig for at tilføje kommentarer

# 12

16 år 7 måneder siden

Permalink

Indsendt af coday den 10. december 2008 kl. 00:06

Permalink

Re: Crontab og bash script

Hvis du skal finde ud af hvor et program bliver kørt fra skal du bare bruge: which KOMANDO og så fortæller den dig stien
  • Log ind eller opret dig for at tilføje kommentarer

# 13

16 år 7 måneder siden

Permalink

Indsendt af TroelsOlesen den 10. december 2008 kl. 02:14

Permalink

Re: Crontab og bash script

Har du prøvet at genstarte/reloade cron demonen efter du har rettet i crontab... ???

/etc/init.d/cron restart
  • Log ind eller opret dig for at tilføje kommentarer

# 14

16 år 7 måneder siden

Permalink

Indsendt af anlnx den 11. december 2008 kl. 10:29

Permalink

Re: Crontab og bash script

Hej .. sry jeg ikke lige har svaret .. internet udbyder u know ./

Har fundet ud af det er kommandoen, den er gal med. Prøvede at erstatte den med en anden og så virkede den.

Men desværre var det jo ikke den kommando jeg skulle bruge. Så prøvede which KOMMANDO, men jeg bruger allerede den sti for kommandoen, så er der en speciel måde man kan skrive med ` eller ', hvis kommandoen ikke vil køres (selv om den godt kan køre når scriptet bliver kørt manuelt) ?
  • Log ind eller opret dig for at tilføje kommentarer

# 15

16 år 7 måneder siden

Permalink

Indsendt af kme den 11. december 2008 kl. 10:35

Permalink

Re: Crontab og bash script

#14 - er du HELT sikker på du ved hvad /bin/sh peger på? Det er ikke nødvendigvis bash, men fx dash, der har en anden syntaks.
  • Log ind eller opret dig for at tilføje kommentarer

# 16

16 år 7 måneder siden

Permalink

Indsendt af anlnx den 11. december 2008 kl. 10:42

Permalink

Re: Crontab og bash script

tror ikke jeg er helt med .. altså den kommando jeg bruger ? hvordan tjekker jeg det ?
  • Log ind eller opret dig for at tilføje kommentarer

# 17

16 år 7 måneder siden

Permalink

Indsendt af kme den 11. december 2008 kl. 10:57

Permalink

Re: Crontab og bash script

#16 ls -al /bin/sh

...og vis lige første linie i det script.
  • Log ind eller opret dig for at tilføje kommentarer

# 18

16 år 7 måneder siden

Permalink

Indsendt af anlnx den 11. december 2008 kl. 10:58

Permalink

output: lrwxrwxrwx 1 root

output:
lrwxrwxrwx 1 root root 4 2008-11-25 12:07 /bin/sh -> dash

så gætter det er dash..

hvad gør jeg så ?

og første linie:

#!/bin/bash
  • Log ind eller opret dig for at tilføje kommentarer

# 19

16 år 7 måneder siden

Permalink

Indsendt af divineant den 11. december 2008 kl. 11:03

Permalink

Re: Crontab og bash script

det er ved at være en god lang tråd, for en formentligt lille fejl. Er det ikke på tide at vi får det famøse script at se? du kan smide det på pastebin.com

at /bin/sh peger på dash betyder intet så længe du har skrevet #!/bin/bash, med mindre selvfølgelig bash også peger på dash
  • Log ind eller opret dig for at tilføje kommentarer

# 20

16 år 7 måneder siden

Permalink

Indsendt af kme den 11. december 2008 kl. 11:06

Permalink

Re: Crontab og bash script

Har du i det hele taget bash?:

ls -al /bin/bash

???

Hvis ja, så prøv lige dette (som root):

cd /bin
rm -f sh
ln -s bash sh

og ret linie et i scriptet til

#!/bin/sh

Begge dele er ufarlige og kan let sættes tilbage igen.
  • Log ind eller opret dig for at tilføje kommentarer

# 21

16 år 7 måneder siden

Permalink

Indsendt af kme den 11. december 2008 kl. 11:08

Permalink

Re: Crontab og bash script

#19 - ja, det er nemlig set før at bash er linket til dash, men det får vi at se nu.
  • Log ind eller opret dig for at tilføje kommentarer

# 22

16 år 7 måneder siden

Permalink

Indsendt af divineant den 11. december 2008 kl. 11:11

Permalink

Re: Crontab og bash script

#20 hvorfor vil du dog have ham til at ændre til /bin/sh i scriptet hvis den alligevel linker til /bin/bash, det gør da bare mere uigennemskueligt og error prone hvis den bliver flyttet til et andet system hvor sh ikke linker til bash
  • Log ind eller opret dig for at tilføje kommentarer

# 23

16 år 7 måneder siden

Permalink

Indsendt af anlnx den 11. december 2008 kl. 11:12

Permalink

Re: Crontab og bash script

jo, det er nok bare en lille fejl, men synes ikke at kunne have fundet en lignende på nettet, så tænkte den ikke skulle blive for specifik, da det kan gøre hjælpen for andre mindre, men kan da godt poste mit script. Det er nok ikke det bedste, i har set, men det er også kun et forsøg jeg laver, da jeg ikke har lavet noget i lang tid.

http://pastebin.com/d3788e1c3
  • Log ind eller opret dig for at tilføje kommentarer

# 24

16 år 7 måneder siden

Permalink

Indsendt af divineant den 11. december 2008 kl. 11:18

Permalink

Re: Crontab og bash script

hvilken brugers crontab har du lagt den i? hvis du kører den som root, er det jo roots wallpaper der bliver ændret, og ikke din brugers.
  • Log ind eller opret dig for at tilføje kommentarer

# 25

16 år 7 måneder siden

Permalink

Indsendt af anlnx den 11. december 2008 kl. 11:19

Permalink

Re: Crontab og bash script

har prøvet at ændre bash til sh, men der er ingen forskel. af hvad jeg kan se. Så ændrer det tilbage igen.
  • Log ind eller opret dig for at tilføje kommentarer

# 26

16 år 7 måneder siden

Permalink

Indsendt af anlnx den 11. december 2008 kl. 11:22

Permalink

Re: Crontab og bash script

crontab filen bliver gemt i tmp .. ved ikke lige hvordan jeg skal tjekke det.Men jeg editer den som root. hvis jeg bare skriver crontab -l står der at der ikke er nogen crontab for mig ... så jeg tror det er der fejlen er.. prøver lige
  • Log ind eller opret dig for at tilføje kommentarer

# 27

16 år 7 måneder siden

Permalink

Indsendt af divineant den 11. december 2008 kl. 11:27

Permalink

Re: Crontab og bash script

Så skriver du blot crontab -e som din almindelige bruger, og indsætter den der istedet.

...og ja, den kan laves meget kønnere, du har ikke brug for en enorm case statement, istedet kunne du definere din max random værdi således

max=`ls $wallpaperdir | wc -l`

og sætte en wallpaper variabel således

wallpaper=`ls $wallpaperdir | tail -n $randomnumber | head -n 1`

så skal du heller ikke ændre noget hvis du tilføjer billeder til mappen
  • Log ind eller opret dig for at tilføje kommentarer

# 28

16 år 7 måneder siden

Permalink

Indsendt af anlnx den 11. december 2008 kl. 11:33

In reply to Re: Crontab og bash script by divineant

Permalink

Re: Re: Crontab og bash script

Er faktisk igang med et nyt script, hvor jeg netop gør det, kunne heller ikke lide den enorme case.
  • Log ind eller opret dig for at tilføje kommentarer

# 29

16 år 7 måneder siden

Permalink

Indsendt af anlnx den 11. december 2008 kl. 11:27

Permalink

Re: Crontab og bash script

nu bliver det udført på min bruger og ikke som root.. men der sker stadig ingenting.
  • Log ind eller opret dig for at tilføje kommentarer

# 30

16 år 7 måneder siden

Permalink

Indsendt af divineant den 11. december 2008 kl. 11:42

Permalink

Re: Crontab og bash script

Har desværre, inspireret af screenshot tråden, netop smidt gnome på porten, så jeg kan ikke engang selv tage et kig på hvad der kan være galt. Men jeg har engang skrevet et script der gjorde lige nøjagtig det du prøver på. Den lod jeg dog køre som en daemon istedet for at kalde den fra cron.
  • Log ind eller opret dig for at tilføje kommentarer

# 31

16 år 7 måneder siden

Permalink

Indsendt af anlnx den 11. december 2008 kl. 11:45

Permalink

Re: Crontab og bash script

hvordan kørte du den som en daemon ?
Jeg tænkte lidt på at lave et loop, der fungerede som en timer. Desværre tror jeg det vil belaste ret meget.
  • Log ind eller opret dig for at tilføje kommentarer

# 32

16 år 7 måneder siden

Permalink

Indsendt af divineant den 11. december 2008 kl. 11:51

Permalink

while [ 1 ]; do #kodesleep


while [ 1 ]; do
#kode
sleep $interval
done


sleep kræver ikke noget af systemet, så det kan du fint gøre.
Men nu blev jeg nysgerrig, og som jeg tænkte, så har det noget at gøre med environment variabler, der ikke bliver opdateret når cron kører showet.
her et et link til en fyr der vil præcis det samme som dig, og derfor har kastet sig ud i at tilføje dbus signaler i hans cronjob. Desuden er hans random wallpaper funktion er kogt ned til en simpel "find | sort | tail"
http://atutility.com/2008/11/26/change-background-wallpaper-randomly-on…
  • Log ind eller opret dig for at tilføje kommentarer

# 33

16 år 7 måneder siden

Permalink

Indsendt af anlnx den 11. december 2008 kl. 11:53

Permalink

Re: Crontab og bash script

oh :) kigger lige
  • Log ind eller opret dig for at tilføje kommentarer

# 34

16 år 7 måneder siden

Permalink

Indsendt af anlnx den 11. december 2008 kl. 12:35

Permalink

Re: Crontab og bash script

jamen, nu burde jeg kunne få det til at virke på den ene eller den anden måde. Mange tak for jeres hjælp :)
  • Log ind eller opret dig for at tilføje kommentarer

Svar søges

llumos Unix-operativsystem, 0
Den er go 0
14. februar = I Love Free Software Day 0
Lokal fil-deling - for de dovne. 0
Linux fra begynder til professionel af O'Reilly 0

Seneste aktivitet

PCLinuxOS 30
den er sjov 3
Reserve kernel og btrfs 3
En snak om Linux-kompatibel software 12
"Intet realistisk alternativ" - mig i r*ven 17
Open source events i danmark? 3
Virtuel maskine? 4
Gode anmeldelser Zorin OS 17.3 8
Open Source-eksperimentet 5
Nulstilling af adgangskode 6
Ingen Mint 5
Linux App Store Flathub når 3 milliarder downloads 2
Digitaliseringsministeriet sætter gang i pilotprojekt om digital suverænitet 3
Mest sikker webbrowser 5
Firefox 2
Privatbeskeder 7
Backup/synkronisering? 3
BigLinux 5
Chatgpt satire 1
Læsning af databasefil i Firefox 2

© 2025 Linuxin og de respektive skribenter

Oprettet og drevet af nørder siden 2004 !