Problemer med scripting - LØST

Her postes alt, som ikke direkte har noget med Ubuntu at gøre.
michaeldk
Indlæg: 53
Tilmeldt: 16. okt 2009, 11:30
IRC nickname: Michael Andersen

Problemer med scripting - LØST

Indlæg af michaeldk »

Hej Alle, denne sag er måske lidt malplaceret, men håber alligevel nogen kan hjælpe mig.

jkeg bruger PT freenas til filserver derhjemme, der vil jeg gerne oprette en CRON script der kopier data fra en mappe til en anden, men mappen den skal kopierer til skal oprettes med dags dato som navn

Min script ser ud som følgende

Kode: Vælg alt

#!/bin/sh 
CUR_DATE=`date +%b%Y`
cp -r /mnt/backup/Local.backup.homes/2level/michael /mnt/backup/Local.backup.homes/Archives/$CUR_DATE


Når jeg køre scripted for jeg følgende output

Kode: Vælg alt

freenas:/mnt/backup/scripts# /bin/sh -x /mnt/backup/scripts/test.sh

+

: not found

+ date +%b%Y

+ CUR_DATE=Apr2010

+

: not found

+ cp -r /mnt/backup/Local.backup.homes/2level/michael /mnt/backup/Local.backup.homes/Archives/Apr2010


Den opretter så ganske vist en mappe - når jeg sidder i terminalen på unix boxen ser mappen således ud "Apr2010??" Jeg ved ikke hvorfor den opretter de to spørgsmåls tegn, men når jeg kigger åp mappen i Windows via de shares der er oprettet på boksen ser det således ud "AM6OA3~F" , dette er jo desværre ikke særlig brugbart.

Er der nogen der kunne komme med forslag til en mulig løsning?

PÅ forhånd tak

Michael
Senest rettet af michaeldk 13. apr 2010, 15:18, rettet i alt 1 gang.
lath
Indlæg: 5095
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

Re: Problemer med scripting

Indlæg af lath »

michaeldk skrev:Hej Alle, denne sag er måske lidt malplaceret, men håber alligevel nogen kan hjælpe mig.

jkeg bruger PT freenas til filserver derhjemme, der vil jeg gerne oprette en CRON script der kopier data fra en mappe til en anden, men mappen den skal kopierer til skal oprettes med dags dato som navn

Min script ser ud som følgende

Kode: Vælg alt

#!/bin/sh 
CUR_DATE=`date +%b%Y`
cp -r /mnt/backup/Local.backup.homes/2level/michael /mnt/backup/Local.backup.homes/Archives/$CUR_DATE


Når jeg køre scripted for jeg følgende output

Kode: Vælg alt

freenas:/mnt/backup/scripts# /bin/sh -x /mnt/backup/scripts/test.sh

+

: not found

+ date +%b%Y

+ CUR_DATE=Apr2010

+

: not found

+ cp -r /mnt/backup/Local.backup.homes/2level/michael /mnt/backup/Local.backup.homes/Archives/Apr2010


Den opretter så ganske vist en mappe - når jeg sidder i terminalen på unix boxen ser mappen således ud "Apr2010??" Jeg ved ikke hvorfor den opretter de to spørgsmåls tegn, men når jeg kigger åp mappen i Windows via de shares der er oprettet på boksen ser det således ud "AM6OA3~F" , dette er jo desværre ikke særlig brugbart.

Er der nogen der kunne komme med forslag til en mulig løsning?

PÅ forhånd tak

Michael


Noget a la:

Kode: Vælg alt

#!/bin/bash
cp -r /mnt/backup/Local.backup.homes/2level/michael /mnt/backup/Local.backup.homes/Archives/$(date +%Y%m%d_%H:%M.%S)

?

ellers kig i manual siden for date(1)
med

Kode: Vælg alt

man 1 date

udført i en terminal, hvis du vil have noget andet end +%Y%m%d_%H:%M.%S

Et tryk på 'q'-tasten afslutter manual læseren.

Hjælp til manual læseren med:

Kode: Vælg alt

man man


/Lars
Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags
zob
Redaktør
Indlæg: 4430
Tilmeldt: 6. jan 2009, 22:01
Geografisk sted: København

Re: Problemer med scripting

Indlæg af zob »

Der kan være du kan finde lidt inspiration i laoshi's backup-scripts også. Han bruger rsync i stedet for cp, men opretter også automatisk nogle mapper:
viewtopic.php?f=11&t=5881&start=0&st=0&sk=t&sd=a
viewtopic.php?f=11&t=7282

Mere info om rsync

Kode: Vælg alt

man rsync
http://sites.google.com/site/rsync2u/ho ... c-tutorial
michaeldk
Indlæg: 53
Tilmeldt: 16. okt 2009, 11:30
IRC nickname: Michael Andersen

Re: Problemer med scripting

Indlæg af michaeldk »

Okay super, jeg vil da lige afprøve det og rapportere tilbage her ;)
michaeldk
Indlæg: 53
Tilmeldt: 16. okt 2009, 11:30
IRC nickname: Michael Andersen

Re: Problemer med scripting

Indlæg af michaeldk »

Nu har jeg møffet lidt rundt med det uden at få nogen som helst forbedring ! jeg er ved at gå ud af mit gode skind over det her


Det eneste jeg vil, er at denne kommando

Kode: Vælg alt

cp -r /folder/underfolder /folder/`date +%b%Y`

Skal køre automatisk en gang om måneden, jeg forstår vitterligt ikke at dette skal være så svært at få til at fungere, men det er det bare :)

Nå men håber på et godt og hurtigt svar fra en af jer :)
jlouis
Indlæg: 56
Tilmeldt: 10. aug 2009, 00:23
IRC nickname: jlouis

Re: Problemer med scripting

Indlæg af jlouis »

michaeldk skrev:Nu har jeg møffet lidt rundt med det uden at få nogen som helst forbedring ! jeg er ved at gå ud af mit gode skind over det her


Du bruger DOS-lineendings i filen? Kig på dos2unix-pakken.
soundpartner
Indlæg: 3461
Tilmeldt: 27. sep 2008, 23:51
IRC nickname: sound
Geografisk sted: København

Re: Problemer med scripting

Indlæg af soundpartner »

jeg ville nu nok gribe det lidt anderledes an.

første opgave er at få laveet et script der kan eksekveres. dette kunne f.eks være:

Kode: Vælg alt

#!/bin/sh
xmessage "hello world"
som åbner en lille box på skærmen man skal sige ok til.
dette er et fint lille testscript.

dernæst ville jeg få cronjobbet til at fungere således at det kører mit lille script hvert minut. når dette er gjort så vil jeg ændre i cronjobbet så det kører hver måned i stedet for hvert minut.

sidste opgave er så at få lavet et script som virker og udfører den opgave du ønsker.
det kan godt være at jeg gør det besværligt, men på denne måde er det nemt at debugge da man tager en opgave ad gangen.
Husk forøvrigthvordan dit cronjob skal køres, samt hvillke rettigheder det skal have. Er det root eller dig selv der kører jobbet, og skal scriptet have root-rettigheder eller er dette ikke nødvendigt.

til sidst er det så bare at kombinere dit fungerende cronjob (der aktiverer et eksternt script) med det script som klarer ærterne og som fungerer.
Selvudnævnt guru når det drejer sig om mobilt bredbånd

Webmaster og stifter af:
Billede
Hvor du finder scripts til en hver situation

Billede
laoshi
Redaktør
Indlæg: 5515
Tilmeldt: 26. apr 2008, 20:52
IRC nickname: laoshi
Geografisk sted: Vejle

Re: Problemer med scripting

Indlæg af laoshi »

Hvis du nu først får selve scriptet til at fungere som du vil have det til, så er du nået langt.
Du behøver ikke engang at skulle rode med cron og sætte dig ind i dens syntaks, for der ligger en meget anvendelig gui til det i softwarecenter: 'scheduled tasks'.
Få dit backupscript til at fungere - så kan det ikke tage mange øjeblikke at køre det med de intervaller som du har bestemt, når du bruger scheduled tasks.
"Von guten Mächten wunderbar geborgen
erwarten wir getrost was kommen mag.
Gott ist mit uns am Abend und am Morgen
Und ganz gewiss an jedem neuen Tag"

(Dietrich Bonhoeffer 1906-1945)

http://www.stromata.dk
https://wiki.ubuntu.com/FlemmingChristensen
https://launchpad.net/~laoshi
lath
Indlæg: 5095
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

Re: Problemer med scripting

Indlæg af lath »

michaeldk skrev:Nu har jeg møffet lidt rundt med det uden at få nogen som helst forbedring ! jeg er ved at gå ud af mit gode skind over det her


Det eneste jeg vil, er at denne kommando

Kode: Vælg alt

cp -r /folder/underfolder /folder/`date +%b%Y`

Skal køre automatisk en gang om måneden, jeg forstår vitterligt ikke at dette skal være så svært at få til at fungere, men det er det bare :)

Nå men håber på et godt og hurtigt svar fra en af jer :)


den kommando du skrev bruger nok forkerte gnyffer (gammel metode). Du kan bruge den nye metode:
/bin/bash -c "cp -r /folder/underfolder /folder/$(date +%b%Y)"

Her kalder jeg også bash fortolkeren direkte, som jeg ved forstår den syntax. Den kommando jeg har skrevet kan du med sikkerhed også starte fra et cron script (køre det en gang om måneden via cron).

/Lars
Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags
michaeldk
Indlæg: 53
Tilmeldt: 16. okt 2009, 11:30
IRC nickname: Michael Andersen

Re: Problemer med scripting

Indlæg af michaeldk »

Hej alle og tak for jeres svar :)


Jeg har prøvet lidt forskelligt, og Lath, jeg prøvede dit script, igen får jeg samme problem :(


hele scripted ser således ud

Kode: Vælg alt

/bin/bash -c "cp -r /mnt/backup/Local.backup.homes/2level/michael/ /mnt/backup/Local.backup.homes/Archives/$(date +%b%Y)"


efter jeg køre filen for jeg dette output:

Kode: Vælg alt

 /bin/sh -x /mnt/backup/scripts/test.sh
+
: not found
+ date +%b%Y
+ /bin/bash -c cp -r /mnt/backup/Local.backup.homes/2level/michael/ /mnt/backup/Local.backup.homes/Archives/Apr2010



Som der igen generere et forkert filnavn i mappen, under *nix ser navnet ud som her Apr2010? og under windows filshare således ASN1JY~Q

Jeg ved virkelig ikke hvad det er der går galt :(
lath
Indlæg: 5095
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

Re: Problemer med scripting

Indlæg af lath »

michaeldk skrev:Hej alle og tak for jeres svar :)


Jeg har prøvet lidt forskelligt, og Lath, jeg prøvede dit script, igen får jeg samme problem :(


hele scripted ser således ud

Kode: Vælg alt

/bin/bash -c "cp -r /mnt/backup/Local.backup.homes/2level/michael/ /mnt/backup/Local.backup.homes/Archives/$(date +%b%Y)"


efter jeg køre filen for jeg dette output:

Kode: Vælg alt

 /bin/sh -x /mnt/backup/scripts/test.sh
+
: not found
+ date +%b%Y
+ /bin/bash -c cp -r /mnt/backup/Local.backup.homes/2level/michael/ /mnt/backup/Local.backup.homes/Archives/Apr2010



Som der igen generere et forkert filnavn i mappen, under *nix ser navnet ud som her Apr2010? og under windows filshare således ASN1JY~Q

Jeg ved virkelig ikke hvad det er der går galt :(


/bin/sh er ikke nødvendigvis det samme som /bin/bash - faktisk er /bin/sh det samme som (et softlink til) /bin/dash, og det er årsagen til at det ikke virker
dash er:
dash is the standard command interpreter for the system. The current
version of dash is in the process of being changed to conform with the
POSIX 1003.2 and 1003.2a specifications for the shell. This version has
many features which make it appear similar in some respects to the Korn
shell, but it is not a Korn shell clone (see ksh(1)). Only features des‐
ignated by POSIX, plus a few Berkeley extensions, are being incorporated
into this shell.



Hvis du absolut vil bruge dash (/bin/sh), så vil det hjælpe, hvis du husker start-" og slut-".

/Lars
Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags
michaeldk
Indlæg: 53
Tilmeldt: 16. okt 2009, 11:30
IRC nickname: Michael Andersen

Re: Problemer med scripting

Indlæg af michaeldk »

Hej igen Lars.

Jeg har nu prøvet at køre .sh filen som /bin/bash og /bin/sh uden der kommer nogen ny effekt ved det.


Jeg har også prøvet at skrive /bin/sh og /bin/bash i .sh filen, men dette har heller ikke afhjulpet problemet.

det eneste positive jeg har oplevet er at outputtet ved kørslen af filen ser bedre ud.

Kode: Vælg alt

freenas:/mnt/backup/scripts# /bin/sh -x /mnt/backup/scripts/test.sh
+ date +%b%Y
+ /bin/sh -c cp -r /mnt/backup/Local.backup.homes/2level/michael/ /mnt/backup/Local.backup.homes/Archives/Apr2010



hvor den før så sådan her ud

Kode: Vælg alt

/bin/sh -x /mnt/backup/scripts/test.sh
+
: not found
+ date +%b%Y
+ /bin/bash -c cp -r /mnt/backup/Local.backup.homes/2level/michael/ /mnt/backup/Local.backup.homes/Archives/Apr2010


Men mappen bliver stadig oprettet forkert og har forkert navn i Windows og Linux
soundpartner
Indlæg: 3461
Tilmeldt: 27. sep 2008, 23:51
IRC nickname: sound
Geografisk sted: København

Re: Problemer med scripting

Indlæg af soundpartner »

nu har jeg rodet en smule med det og er kommet til følgende løsning (og som virker firt her dog med andre mapper)
du laver et script med bavnet månedsbackup.bash (eller andet lignende) det vigtige her er efternavnet er bash eller ingenting. i scriptet skriver du så

Kode: Vælg alt

#!/bin/bash
dag=$(date +%B%Y)
cp -r /mnt/backup/Local.backup.homes/2level/michael /mnt/backup/Local.backup.homes/Archives/$dag


du kan nu gøre scriptet eksekverbart (sudo chmod +x månedsbackup.bash) og køre det som et program eller du kan køre det med komandoen bash månedsbackup.bash

jeg tror det der har drillet dig er at du har manglet $ og paranteser rundt om din komando i variablen.
jeg har i hvert fald ovenstående script til at fungere her
Selvudnævnt guru når det drejer sig om mobilt bredbånd

Webmaster og stifter af:
Billede
Hvor du finder scripts til en hver situation

Billede
michaeldk
Indlæg: 53
Tilmeldt: 16. okt 2009, 11:30
IRC nickname: Michael Andersen

Re: Problemer med scripting

Indlæg af michaeldk »

nu har jeg rodet en smule med det og er kommet til følgende løsning (og som virker firt her dog med andre mapper)
du laver et script med bavnet månedsbackup.bash (eller andet lignende) det vigtige her er efternavnet er bash eller ingenting. i scriptet skriver du så
Kode:
#!/bin/bash
dag=$(date +%B%Y)
cp -r /mnt/backup/Local.backup.homes/2level/michael /mnt/backup/Local.backup.homes/Archives/$dag


du kan nu gøre scriptet eksekverbart (sudo chmod +x månedsbackup.bash) og køre det som et program eller du kan køre det med komandoen bash månedsbackup.bash

jeg tror det der har drillet dig er at du har manglet $ og paranteser rundt om din komando i variablen.
jeg har i hvert fald ovenstående script til at fungere her


Så fungerede det ligesom det skulle, mange tak for jeres hjælp, det har virkelig hjulpet mig meget :D
lath
Indlæg: 5095
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

Re: Problemer med scripting

Indlæg af lath »

michaeldk skrev:Hej igen Lars.

Jeg har nu prøvet at køre .sh filen som /bin/bash og /bin/sh uden der kommer nogen ny effekt ved det.


Jeg har også prøvet at skrive /bin/sh og /bin/bash i .sh filen, men dette har heller ikke afhjulpet problemet.

det eneste positive jeg har oplevet er at outputtet ved kørslen af filen ser bedre ud.

Kode: Vælg alt

freenas:/mnt/backup/scripts# /bin/sh -x /mnt/backup/scripts/test.sh
+ date +%b%Y
+ /bin/sh -c cp -r /mnt/backup/Local.backup.homes/2level/michael/ /mnt/backup/Local.backup.homes/Archives/Apr2010



hvor den før så sådan her ud

Kode: Vælg alt

/bin/sh -x /mnt/backup/scripts/test.sh
+
: not found
+ date +%b%Y
+ /bin/bash -c cp -r /mnt/backup/Local.backup.homes/2level/michael/ /mnt/backup/Local.backup.homes/Archives/Apr2010


Men mappen bliver stadig oprettet forkert og har forkert navn i Windows og Linux



Godt at du fandt en løsning, sammen med soundpartner. :)

Til en en anden gang bør du vide at en bash commando i en tekststreng) (-c argumentet) skal angives i anførselstegn a la:

Kode: Vælg alt

/bin/bash -c "din_kommando_er_her -arg1 -arg2 ... -argN"

Du få stor nytte af at kigge på bash(1) man siden: http://manpages.ubuntu.com/manpages/karmic/en/man1/bash.1.html

/Lars
Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags