/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
Cron job rettigheder
Fra : Ukendt


Dato : 26-05-06 22:49

Hej.
Jeg har et problem med noget sftp-filoverførsel ved brug af cron.
Jeg skal overføre filer fra en server til en anden, og bruger hertil et
script med sftp.
Scriptet virker fint når jeg kører det manuelt, men filerne bliver ikke
overført når scriptet kører med cron.
Jeg har checket at cron kører scriptet, og det gør det.
I crontab er cron.daily sat til at køre som root, osv.
Hvad pokker kan det være der går galt.
Mvh. Leif.

 
 
Michael Zedeler (26-05-2006)
Kommentar
Fra : Michael Zedeler


Dato : 26-05-06 23:11

leif wrote:

> Jeg har et problem med noget sftp-filoverførsel ved brug af cron.
> Jeg skal overføre filer fra en server til en anden, og bruger hertil et
> script med sftp.
> Scriptet virker fint når jeg kører det manuelt, men filerne bliver ikke
> overført når scriptet kører med cron.
> Jeg har checket at cron kører scriptet, og det gør det.
> I crontab er cron.daily sat til at køre som root, osv.
> Hvad pokker kan det være der går galt.

Er scriptet afhængigt af at blive kørt med et specifikt working directory?

Desuden skal du checke at sftp ikke insisterer på at være koblet til en
rigtig brugerterminal, når det bliver kørt. Det er der nogle programmer,
som kan insistere på.

Mvh. Michael.
--
Which is more dangerous? TV guided missiles or TV guided families?
Visit my home page at http://michael.zedeler.dk/
Get my vcard at http://michael.zedeler.dk/vcard.vcf

Kent Friis (26-05-2006)
Kommentar
Fra : Kent Friis


Dato : 26-05-06 23:38

Den Fri, 26 May 2006 23:48:34 +0200 skrev leif:
> Hej.
> Jeg har et problem med noget sftp-filoverførsel ved brug af cron.
> Jeg skal overføre filer fra en server til en anden, og bruger hertil et
> script med sftp.

sftp som script? Det troede jeg egentlig krævede expect eller lignende?

> Scriptet virker fint når jeg kører det manuelt, men filerne bliver ikke
> overført når scriptet kører med cron.
> Jeg har checket at cron kører scriptet, og det gør det.
> I crontab er cron.daily sat til at køre som root, osv.
> Hvad pokker kan det være der går galt.

$PATH? Den indeholder typisk kun nogle få directories når
scriptet kører fra cron.

Mvh
Kent
--
Hard work may pay off in the long run, but laziness pays off right now.

Ukendt (27-05-2006)
Kommentar
Fra : Ukendt


Dato : 27-05-06 21:42

> $PATH? Den indeholder typisk kun nogle få directories når
> scriptet kører fra cron.

Jeg bruger absolutte stier til alle filer, så $path burde ikke være et
problemet.

Mvh. Leif.

Niels Callesøe (27-05-2006)
Kommentar
Fra : Niels Callesøe


Dato : 27-05-06 11:46

leif wrote in <news.s96hi8r8goxpz1@gonzo_priv>:

> Jeg har et problem med noget sftp-filoverførsel ved brug af cron.
> Jeg skal overføre filer fra en server til en anden, og bruger
> hertil et script med sftp.

Det kan ikke klares med scp i stedet? sftp er typisk mest velegnet til
interactive-mode i min erfaring.

--
Niels Callesøe - dk pfy @work
pfy[at]nntp.dk - http://www.t29.dk/~nica/disclaimer.php

Don't buy D-Link. Thanks!

Ukendt (27-05-2006)
Kommentar
Fra : Ukendt


Dato : 27-05-06 21:44

> Det kan ikke klares med scp i stedet? sftp er typisk mest velegnet til
> interactive-mode i min erfaring.

Jeg bruger putty-sftp klienten, fordi den kan jeg scripte til
ikke-interaktiv og uden brug af ssh-certifikater, men ved brug af password
i scriptet i stedet. Hvis jeg skal bruge scp ikke-interaktivt, mener jeg
det kun kan lade sig gøre ved brug af certifikater.

Mvh. Leif.

Niels Callesøe (28-05-2006)
Kommentar
Fra : Niels Callesøe


Dato : 28-05-06 07:25

Leif wrote in <newss9788aiyp9zvu3@giggosove>:

>> Det kan ikke klares med scp i stedet? sftp er typisk mest
>> velegnet til interactive-mode i min erfaring.
>
> Jeg bruger putty-sftp klienten, fordi den kan jeg scripte til
> ikke-interaktiv og uden brug af ssh-certifikater, men ved brug af
> password i scriptet i stedet. Hvis jeg skal bruge scp
> ikke-interaktivt, mener jeg det kun kan lade sig gøre ved brug af
> certifikater.

Nu er jeg slet ikke med. PuTTY er en windows-applikation (der godt nok
kan bygges på *nix men det er ikke meningen). Er der windows-maskiner
involveret i noget af det?

Mht. det med password-auth, så viser en hurtig skimning af man-sider at
hverken den scp eller den sftp der findes på min FBSD kasse
understøtter ikke-interaktiv password-auth. Det gør derimod både pscp
og psftp (så hvis det er psftp du bruger kan du måske bruge pscp i
stedet).

--
Niels Callesøe - dk pfy @work
pfy[at]nntp.dk - http://www.t29.dk/~nica/disclaimer.php

Don't buy D-Link. Thanks!

Hans Joergensen (28-05-2006)
Kommentar
Fra : Hans Joergensen


Dato : 28-05-06 07:47

Niels Callesøe wrote:
> Mht. det med password-auth, så viser en hurtig skimning af man-sider at
> hverken den scp eller den sftp der findes på min FBSD kasse
> understøtter ikke-interaktiv password-auth. Det gør derimod både pscp

Hvis man absolut vil kan man vel altid bruge expect..

// Hans
--
Jeg beskyttes IKKE af den gratis SPAMFighter til privatbrugere, der
har spammet usenet i over 6000 indlæg.

Ukendt (28-05-2006)
Kommentar
Fra : Ukendt


Dato : 28-05-06 16:24

> Hvis man absolut vil kan man vel altid bruge expect..

Jeg kender ikke expect, og hvad det gør, men jeg tror lige jeg vil læse
lidt på det.

Mvh. Leif.

Ukendt (28-05-2006)
Kommentar
Fra : Ukendt


Dato : 28-05-06 16:23

> Nu er jeg slet ikke med. PuTTY er en windows-applikation (der godt nok
> kan bygges på *nix men det er ikke meningen). Er der windows-maskiner
> involveret i noget af det?

Nej, der er ikke win-klienter involveret. Det er putty-sftp som er
kompileret ved brug af den kode der kan downloades på puttys hjemmeside,
og som sagt virker det helt fint, når jeg starter scriptet manuelt
../mit-script.sh
>
> Mht. det med password-auth, så viser en hurtig skimning af man-sider at
> hverken den scp eller den sftp der findes på min FBSD kasse
> understøtter ikke-interaktiv password-auth. Det gør derimod både pscp
> og psftp (så hvis det er psftp du bruger kan du måske bruge pscp i
> stedet).

Tror du ikke, at jeg bare støder ind i det samme problem ved brug af pscp,
i stedet for psftp.

Mvh. Leif.

Christian E. Lysel (27-05-2006)
Kommentar
Fra : Christian E. Lysel


Dato : 27-05-06 13:13

On Fri, 2006-05-26 at 23:48 +0200, leif wrote:
> Hvad pokker kan det være der går galt.

Får du ikke en fejl?

Prøv at kik i cron's logfil.


Ellers kan du håndkøre jobbet:

Prøv at start cronjob'et med linien:

env > /tmp/cron-env

Vent på job'et bliver kørt og du vil nu have en kopi af job'ets miljø
i /tmp/cron-env.

Dette kan du bruge til selv at køre job'et med:

env `cat /tmp/cron-env` cron-job

Ret derefter /tmp/cron-env indtil job'et ikke længere fejler. Nu ved du
hvilke variable der skal sættes i job'et for at det køre uden fejl. Dog
er det at fortrække at bruge absolute stier når du kalder programmer.



"set -x" i starten af scriptet kan bruges til at følge scriptet kommando
for kommando.

Jeg plejer at have mine egen initialisering, hvor jeg bruger
trap til at håndtering af problemmer, og exec til at rette fejlbeskeder
til logfiler, således disse ved en fejl kan sendes til driftafdelingen,
og så der også ligger en fin historik på de job der bliver kørt.






Ukendt (27-05-2006)
Kommentar
Fra : Ukendt


Dato : 27-05-06 21:41

> Prøv at start cronjob'et med linien:
>
> env > /tmp/cron-env
>
> Vent på job'et bliver kørt og du vil nu have en kopi af job'ets miljø
> i /tmp/cron-env.
>
> Dette kan du bruge til selv at køre job'et med:
>
> env `cat /tmp/cron-env` cron-job
>
> Ret derefter /tmp/cron-env indtil job'et ikke længere fejler. Nu ved du
> hvilke variable der skal sættes i job'et for at det køre uden fejl. Dog
> er det at fortrække at bruge absolute stier når du kalder programmer.

Jeg forstår ikke helt hvad du mener med dette.

Mvh. Leif.

Claus Rasmussen (28-05-2006)
Kommentar
Fra : Claus Rasmussen


Dato : 28-05-06 00:33

leif <?> wrote:

> Scriptet virker fint når jeg kører det manuelt, men filerne bliver ikke
> overført når scriptet kører med cron.

Vi bliver ikke klogere uden nogle fejlmeddelelser. Put følgende omkring dit
script:

{
env
echo
<dit script>
} &>/root/script.log

Nu kender jeg ikke meget til sftp, men der er stor forskel på det
environment du kører med, når du har logget ind, og det cron giver dig. Jeg
vil tro, at det er det, der er problemet.

-Claus


Ukendt (28-05-2006)
Kommentar
Fra : Ukendt


Dato : 28-05-06 16:37

> Vi bliver ikke klogere uden nogle fejlmeddelelser. Put følgende omkring
> dit
> script:
>
> {
> env
> echo
> <dit script>
> } &>/root/script.log
>

OK. Tak for det. Nu har jeg puttet det omkring scriptet og kørt det
manuelt, så nu afventer jeg lige at scriptet køres af cron, og kan så
sammenligne output.

Mvh. Leif.

Christian E. Lysel (28-05-2006)
Kommentar
Fra : Christian E. Lysel


Dato : 28-05-06 00:47

On Sat, 2006-05-27 at 22:40 +0200, Leif wrote:
> Jeg forstår ikke helt hvad du mener med dette.

Hvilken del?


Ukendt (28-05-2006)
Kommentar
Fra : Ukendt


Dato : 28-05-06 16:17

>> Jeg forstår ikke helt hvad du mener med dette.
>
> Hvilken del?

øh, faktisk det hele.
Jeg kan ikke lige se, hvordan jeg skal bruge "env" som du skriver, jeg har
prøvet at bruge det i kommandolinien, og indsat mit cron-job, men der sker
ingenting.
Jeg har ikke lige erfaring med det du skriver.
Mvh.Leif.


Leif (28-05-2006)
Kommentar
Fra : Leif


Dato : 28-05-06 22:08

Ok. Nu forstår jeg måske hvad du mener. Jeg har kørt jobbet, og optaget
env i en fil, og dette er output.

HOSTNAME=smtp.server
SHELL=/bin/bash
TERM=xterm
HISTSIZE=1000
SSH_CLIENT=xxx.xxx.xxx.xxx 1096 22
SSH_TTY=/dev/pts/3
USER=root
LS_COLORS=no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.btm=00;32:*.bat=00;32:*.sh=00;32:*.csh=00;32:*.tar=00;31:*.tgz=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.bz=00;31:*.tz=00;31:*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35:*.xbm=00;35:*.xpm=00;35:*.png=00;35:*.tif=00;35:
PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin
MAIL=/var/spool/mail/root
_=/bin/env
PWD=/etc/cron.daily
INPUTRC=/etc/inputrc
LANG=da_DK.UTF-8
SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass
HOME=/root
SHLVL=2
LOGNAME=root
SSH_CONNECTION=xxx.xxx.xxx.xxx 1096 xxx.xxx.xxx.xxx 22
LESSOPEN=|/usr/bin/lesspipe.sh %s
G_BROKEN_FILENAMES=1


Det er så meningen at jeg starter mit script med at genkalde dette env, og
scriptet burde så køre med i det rigtige miljø

Mvh. Leif.

Christian E. Lysel (28-05-2006)
Kommentar
Fra : Christian E. Lysel


Dato : 28-05-06 22:28

On Sun, 2006-05-28 at 23:07 +0200, Leif wrote:
> Det er så meningen at jeg starter mit script med at genkalde dette env, og
> scriptet burde så køre med i det rigtige miljø

Ja.


Leif (29-05-2006)
Kommentar
Fra : Leif


Dato : 29-05-06 19:27

On Fri, 26 May 2006 23:48:34 +0200, leif <?> wrote:

> Hej.
> Jeg har et problem med noget sftp-filoverførsel ved brug af cron.
> Jeg skal overføre filer fra en server til en anden, og bruger hertil et
> script med sftp.
> Scriptet virker fint når jeg kører det manuelt, men filerne bliver ikke
> overført når scriptet kører med cron.
> Jeg har checket at cron kører scriptet, og det gør det.
> I crontab er cron.daily sat til at køre som root, osv.
> Hvad pokker kan det være der går galt.

Nu fik jeg kørt noget log på scriptet, og det viser sig, at problemet er,
at serverens rsa-key ikke er kendt på klienten, og den skal manuelt
godkendes første gang.
Cron kan åbenbart ikke se, at rsa-key er godkendt af bl.a. root, da den
åbenbart har sine kendte ssh-nøgler et andet sted.

Leif.

Kent Friis (29-05-2006)
Kommentar
Fra : Kent Friis


Dato : 29-05-06 20:43

Den Mon, 29 May 2006 20:27:25 +0200 skrev Leif:
> On Fri, 26 May 2006 23:48:34 +0200, leif <?> wrote:
>
>> Hej.
>> Jeg har et problem med noget sftp-filoverførsel ved brug af cron.
>> Jeg skal overføre filer fra en server til en anden, og bruger hertil et
>> script med sftp.
>> Scriptet virker fint når jeg kører det manuelt, men filerne bliver ikke
>> overført når scriptet kører med cron.
>> Jeg har checket at cron kører scriptet, og det gør det.
>> I crontab er cron.daily sat til at køre som root, osv.
>> Hvad pokker kan det være der går galt.
>
> Nu fik jeg kørt noget log på scriptet, og det viser sig, at problemet er,
> at serverens rsa-key ikke er kendt på klienten, og den skal manuelt
> godkendes første gang.
> Cron kan åbenbart ikke se, at rsa-key er godkendt af bl.a. root, da den
> åbenbart har sine kendte ssh-nøgler et andet sted.

Cron har ikke noget at gøre med rsa-key, det er ssh der checker
den. Så enten har den ikke været godkendt af den bruger der kører
scriptet, eller $HOME er ikke sat.

Mvh
Kent
--
Hard work may pay off in the long run, but laziness pays off right now.

Ukendt (30-05-2006)
Kommentar
Fra : Ukendt


Dato : 30-05-06 07:18

> Cron har ikke noget at gøre med rsa-key, det er ssh der checker
> den. Så enten har den ikke været godkendt af den bruger der kører
> scriptet, eller $HOME er ikke sat.

Nej, det tænkte jeg nok.
Men kunne jeg evt. køre et job som cron, og herved få accepterer ssh-key
fra serveren.
F.eks med sudo eller lign.

Mvh. Leif.

Claus Rasmussen (30-05-2006)
Kommentar
Fra : Claus Rasmussen


Dato : 30-05-06 14:49

leif <?> wrote:

> Men kunne jeg evt. køre et job som cron, og herved få accepterer ssh-key
> fra serveren.

Du kopierer roots public key (~root/.ssh/id_dsa.pub eller
~root/.ssh/id_rsa.pub) fra cron-serveren til ~root/.ssh/authorized_keys på
backup-maskinen. Så har du login uden password. Du kan teste det ved at
skifte til root med 'su -' på cron-serveren og forsøge et login. Første
gang vil den stille et par spørgsmål, men anden gang skulle det gå glat.
'su -' sikrer at en evt. ssh-agent ikke spiller dig et puds.

Hvis du ikke har public/private keys, kan du generere dem med 'ssh-keygen'.

-Claus


Ukendt (02-06-2006)
Kommentar
Fra : Ukendt


Dato : 02-06-06 15:06

> Du kopierer roots public key (~root/.ssh/id_dsa.pub eller
> ~root/.ssh/id_rsa.pub) fra cron-serveren til ~root/.ssh/authorized_keys
> på backup-maskinen.

Dette har jeg nu gjort, "authorized_keys" mappen fandtes ikke, så den
måtte jeg oprette.

Så har du login uden password. Du kan teste det ved at
> skifte til root med 'su -' på cron-serveren og forsøge et login. Første
> gang vil den stille et par spørgsmål, men anden gang skulle det gå glat.
> 'su -' sikrer at en evt. ssh-agent ikke spiller dig et puds.

Jeg prøver nu at logge på med
sftp -o "IdentityFile=id_rsa" root@server
Men den ignorerer fuldstændig ssh-keys, og beder konsekvent om password.

Mvh. Leif.

Christian E. Lysel (02-06-2006)
Kommentar
Fra : Christian E. Lysel


Dato : 02-06-06 20:07

On Fri, 2006-06-02 at 16:06 +0200, Leif wrote:
> > Du kopierer roots public key (~root/.ssh/id_dsa.pub eller
> > ~root/.ssh/id_rsa.pub) fra cron-serveren til ~root/.ssh/authorized_keys
> > på backup-maskinen.
>
> Dette har jeg nu gjort, "authorized_keys" mappen fandtes ikke, så den
> måtte jeg oprette.

Det er ikke en mappe, men en fil, kun brugeren må have læse/skrive
adgang til.

> Jeg prøver nu at logge på med
> sftp -o "IdentityFile=id_rsa" root@server
> Men den ignorerer fuldstændig ssh-keys, og beder konsekvent om password..

Ja, nøglen skal ligge i en linie i filen.


Ukendt (03-06-2006)
Kommentar
Fra : Ukendt


Dato : 03-06-06 12:50

> Det er ikke en mappe, men en fil, kun brugeren må have læse/skrive
> adgang til.

Okay. Boiiiing, så røg den lige igennem.

Mvh. leif.

Leif (04-06-2006)
Kommentar
Fra : Leif


Dato : 04-06-06 09:11

Hej Alle.

Så fik jeg det til at virke med sftp og ssh-keys.

Tak for hjælpen og alle de gode råd.

Mvh. Leif.

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408523
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste