Shell Sripts: How to call another scripts with one script

Z

Zoungou

Jungspund
Please,

can someone Help me with: How to execute 3 other sripts in one.

-----------

and also Please how to make a tar files which will work at the end of each month with a format like <yyyymm>

Please help me since 6 hours now trying to find a solution

Thanks a lot in advance.


Sonson
 
How to execute 3 other sripts in one.
U mean sth. like the following one?
Code:
{-alex-|-asterix-} => [~/bin]
(18:37:43) cat start.sh 
#!/bin/bash
echo "starter";
/home/alex/bin/first.sh;
/home/alex/bin/second.sh;
/home/alex/bin/third.sh;
{-alex-|-asterix-} => [~/bin]
(18:37:55) cat first.sh 
#!/bin/bash
echo "first one";
{-alex-|-asterix-} => [~/bin]
(18:37:57) cat second.sh 
#!/bin/bash
echo "second one";
{-alex-|-asterix-} => [~/bin]
(18:37:59) cat third.sh 
#!/bin/bash
echo "third one";
{-alex-|-asterix-} => [~/bin]
(18:38:01) ./start.sh 
starter
first one
second one
third one

Please how to make a tar files which will work at the end of each month with a format like <yyyymm>
e.g. sth. like
Code:
 tar -cf tarfilename`date +"%Y%m"`.tar <files_to_tar>
as a cronjob...
 
Zuletzt bearbeitet:
Sir Daboss,
before i test your advices let me give you my best Greetings first for this quick responds and your big interrest to help others

Thanks in advance.

Sonson
 
Hallo,

Daboss dein Hinweise hat geholfen aber i komme nicht weiter hier is was wir brauchen:

TO -DO:

wir benötigen ein Skript welches und die Daten für den ServiceReport sammelt und diese

in ein File ( tar ) packt.



Im einzelnen folgendes sammeln:

Alle Files des letzten Monat aus dem Verzeichnis: BA_eAkte_accounting/out

Den Output von:

/master/home/arcadm/accounting/scripts/print_monthly_responsetime_report_interactive.csh


/master/home/arcadm/work/e_reporting.csh



/master/home/arcadm/work/e_monitor2.csh



Den Namen des Tar-Files bitte mit ServiceReport….. und dem letzen Monat ( aus dem die Daten stammen ) versehen.

Please hier is exactly what we want.

If you cannot read German den Please let me know i'll translate all in English.

Danke im voraus,

Sonson
 
Hey,

also
Alle Files des letzten Monat aus dem Verzeichnis: BA_eAkte_accounting/out
könnte man eventuell so lösen:

Code:
find  BA_eAkte_accounting/out -newerat `date -d "1 month ago" +"%Y%m"`01 -type f -exec tar -cf ServiceReport`date -d "1 month ago" +"%Y%m"`.tar  {}  \;
Den Output der Skripte (schon normaler Text, oder?) solltest du z.Bsp. mit
Code:
/master/home/arcadm/work/e_reporting.csh > e_reporting_output.txt
/master/home/arcadm/work/e_monitor2.csh > e_monitor2.txt
/master/home/arcadm/accounting/scripts/print_monthly_responsetime_report_interactive.csh > print_monthly_responsetime_report_interactive.txt
bekommen.

/Edit 2: Die kannst du dann mit
Code:
tar -rf ServiceReport`date -d "1 month ago" +"%Y%m"`.tar e_reporting_output.txt e_monitor2.txt print_monthly_responsetime_report_interactive.txt
rm -f e_reporting_output.txt e_monitor2.txt print_monthly_responsetime_report_interactive.txt
zum Archiv hinzufuegen und wieder von der Platte löschen.

/Edit: Ich seh gerade, deine anderen Scripte sind csh-Dateien, deswegen: Zumindest in der bash funktionierts, aber ich weiß nicht, inwieweit sich csh und bash da unterscheiden...

/Edit 3:
If you cannot read German den Please let me know i'll translate all in English.
Na, ist ja auch ein deutschsprachiges Forum hier, insofern wäre es eh besser, wenn du/wir bei der deutschen Sprache bleiben ;) :)
 
Zuletzt bearbeitet:
Ok Danke Daboss

Gruß und bis bald für das Feedback
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

ich arbeite tcsh shell


Die tar soll die files.csv einpacking
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

wenn ich find mache bekomme ich diese Fehlermeldung:



arcadm@bm1:/master/home/arcadm/BA_eAkte_accounting/scripts> find /master/home/earcadm/BA_eAkte_accounting/out -newerat `date -d "1 month ago" +"%Y%m"`01 -type f -exec tar -cf Kat2-ServiceReport`date -d "1 month ago" +"%Y%m"`.tar {} \;
date: illegal option -- d
usage: date [-u] mmddHHMM[[cc]yy][.SS]
date [-u] [+format]
date -a [-]sss[.fff]
date: illegal option -- d
usage: date [-u] mmddHHMM[[cc]yy][.SS]
date [-u] [+format]
date -a [-]sss[.fff]
find: bad option -newerat
find: [-H | -L] path-list predicate-list
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

bitte kann jemand mir helfen!


wenn ich dieser Befehl ausführt bekomme ich diese Fehlermeldung:

command:

find /master/home/arcadm/accounting/out -newer `date -u "1 month ago" +"%Y%m"`01 -type f -exec cp {} tar -cf Kat2-ServiceReport`date -u "1 month ago" +"%Y%m"`.tar {} \;



Error Output:

date: illegal option -- d
usage: date [-u] mmddHHMM[[cc]yy][.SS]
date [-u] [+format]
date -a [-]sss[.fff]
date: illegal option -- d
usage: date [-u] mmddHHMM[[cc]yy][.SS]
date [-u] [+format]
date -a [-]sss[.fff]
find: cannot access 01


Vielen Dank an alle.

zoungou (Sonson)
 
Zuletzt bearbeitet:
Hm, dann hast du wohl andere Versionen von find und date als ich... Musste mal schauen, wie du's mit den, dir zur Verfügung stehenden Optionen "workarounden" kannst. Irgendwie schnell geschossen Jahr und Monat einzeln heraus ziehen und dann manuell einen Monat abziehen oder so.
 
Danke für Ihre Antworte; Kann man dass mit (date -u) machen? And auch bekommt ich ein Fehlermeldung manchmal dass : 01 keine Verzeichnis (kann nicht gefunden werden) bei (01 -type f -exec)

find /master/home/earcadm/BA_eAkte_accounting/out -newerat `date -d "1 month ago" +"%Y%m"`01 -type f -exec tar -cf Kat2-ServiceReport`date -d "1 month ago" +"%Y%m"`.tar {} \;

Danke und ein angenehmer Tag wünsch ich dir
 
dabos, danke für den hinweis. ich dachte immer sowas würde in bash nicht funktionuieren.
 
Kein Problem...

meintest du des mit den 3 Skripten? Oder des andere?
 
Hallo Daboss,

was kann ich jetzt machen mit den find und tar Befehle.

Danke im voraus.
 
Hab ich doch oben schon gesagt:

Irgendwie schnell geschossen Jahr und Monat einzeln heraus ziehen und dann manuell einen Monat abziehen oder so.
Ich dachte eher an sowas, aber ich habs jetzt weder getestet, noch weiß ich, ob der newer-Parameter von deinem find dem newerat von meinem find ausreichend ähnelt... ausserdem hab ich doch selber kaum Ahnung von Shellskripten ;)

Code:
#!/bin/bash
JAHR_AKT=$(date +"%Y");
JAHR_DEK=$(($JAHR_AKT - 1));
MONAT_AKT=$(date +"%m");
MONAT_DEK=$(($MONAT_AKT - 1));

#Monat zu klein?
if [ "$MONAT_DEK" -le "0" ]; then
    MONAT_DEK="12";
    JAHR_AKT="$JAHR_DEK";    
fi;

#Monat wird beim subtrahieren ggf. einstellig
if [ "$MONAT_DEK" -le "9" ] && [ "$MONAT_DEK" -ge "1" ]; then
    MONAT_DEK="0$MONAT_DEK";
fi;

DATUM_FIND="$JAHR_AKT$MONAT_DEK$(echo "01")"; #yyyymm01
DATUM_TARNAME="$JAHR_AKT$MONAT_DEK"; #yyyymm

find /master/home/arcadm/accounting/out -newer $DATUM_FIND -type f -exec tar -cf Kat2-ServiceReport$DATUM_TARNAME.tar {} \;
 
Zuletzt bearbeitet:
Daboss,

vielen Dank im voraus,
ich probiere das aus und gebe dir Bescheid asap.

Danke

Zoungou
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

Hi Daboss,

ich bekomme ein Fehlermeldung wenn ich alle zusammen mit dein script ausführt

arcadm@dbm:/master/home/arcadm/e_accounting/monatlichen_service_report> ./report_07062009.csh
Variable syntax


how can i now put together with my 3 scripts:

""""Alle Files des letzten Monat aus dem Verzeichnis: BA_eAkte_accounting/out

Den Output von:

/master/home/arcadm/accounting/scripts/print_monthly_responsetime_report_interactive.csh


/master/home/arcadm/work/e_reporting.csh



/master/home/arcadm/work/e_monitor2.csh

""""""""""""

my shell ist so: /bin/tcsh

arcadm@dbm:/master/home/arcadm/e_accounting/echo $SHELL
/bin/tcsh


Gruß Daboss.

Zoungou
 
Zuletzt bearbeitet:
Hi Daboss,

ich habe versuche alles zu basteln und nach der Ausführung bekomme ich dieser Fehlermeldung:

syntax error at line 2: `JAHR_AKT=$' unexpected

ich glaube deiner Skript is was ich brauch

Gruß

Zoungou
 
Hm, wenn du des Script in #!/bin/bash laufen lässt, sollt's eigentlich schon passen, ob/wie bei deiner Shell die Syntax anders ist, musst du halt guggen...
 
Hi Daboss,

ganz Tag habe ich dein letztes Skripte ausprobiert und und hat funktionniert aber am ende ich bekomme dieser Meldung(Error):

Error:

MONAT_DEK=12
JAHR_AKT=
+ [ 12 -le 9 ]
DATUM_FIND=12$(echo 01)
DATUM_TARNAME=12
+ find /master/home/arcadm/accounting/out -newer $DATUM_FIND -type f -exec tar -cf Kat2-ServiceReport$DATUM_TARNAME.tar {} \; -newer 12$(echo 01) -type f -exec tar -cf Kat2-ServiceReport12.tar {} ;
find: cannot access 12$(echo
arcadm@bm1:/master/home/arcadm/work>

Vielen Dank nochmal und bis bald.

Zoungou
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

hier ist die Richtig error Output

MONAT_DEK=12
JAHR_AKT=
+ [ 12 -le 9 ]
DATUM_FIND=12$(echo 01)
DATUM_TARNAME=12
+ find /imagemaster/home/eaarcadm/BA_eAkte_accounting/out -newer 12$(echo 01) -type f -exec tar -cf Kat2-ServiceReport12.tar {} ;
find: cannot access 12$(echo
arcadm@bm1:/master/home/arcadm/work>

wie du um 12:51 gesagte habe: "Hm, wenn du des Script in #!/bin/bash laufen lässt, sollt's eigentlich schon passen" richtig hat gepasst aber bekomme ich am end dieser Fehler:

Bitte hilfe

MONAT_DEK=12
JAHR_AKT=
+ [ 12 -le 9 ]
DATUM_FIND=12$(echo 01)
DATUM_TARNAME=12
+ find /imagemaster/home/eaarcadm/BA_eAkte_accounting/out -newer 12$(echo 01) -type f -exec tar -cf Kat2-ServiceReport12.tar {} ;
find: cannot access 12$(echo
arcadm@bm1:/master/home/arcadm/work>


Danke Daboss für deine Kreativität


zoungou
 
Zuletzt bearbeitet:

Ähnliche Themen

Zugriff Ubuntu 16.04. auf Freigabe 18.04. LTS nicht möglich

Samba 4 Gast Zugang unter Ubuntu funktioniert nicht

Windows clients können nicht mehr auf lange laufendes System zugreifen

dovecot und postfix Konfiguration Problem

NagiosGrapher 1.7.1 funktioniert nicht

Zurück
Oben