Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Verzeichnisstruktur ablegen und mit Datum erweitern

Frage Linux

Mitglied: sergi62

sergi62 (Level 1) - Jetzt verbinden

21.08.2008, aktualisiert 26.08.2008, 3629 Aufrufe, 4 Kommentare

Hallo zusammen,
ich habe mich schon eigene Zeit durch die Angeboten Artikel gewühlt. Aber leider keine wo ich weiter verwenden könnte.

Wie könnte den Batch denn aussehen ?

Aufgabe: Datei In eine Verzeichesstruktur durch einen Punkt getrennt um das Tagesdatum (YYYYMMDD) erweitern werden.

z.B

01/10060746/Test1.001 -----------------> /srv/www/vid/mitglied/0/01/10060746/Test1.001.20080821
01/10060746/Test2.rab -----------------> /srv/www/vid/mitglied/0//01/10060746/Test2.rab.20080821


03/20060746/Test1.001 -----------------> /srv/www/vid/mitglied/0/03/20060746/Test1.001.20080821
03/20060746/Test2.rab -----------------> /srv/www/vid/mitglied/0/03/20060746/Test2.rab.20080821
03/20060746/Test3.pre -----------------> /srv/www/vid/mitglied/0/03/20060746/Test3.pre.20080821

usw.

die Archives Dateien müssen in folgender Verzeichnisstruktur ablegen:

Im Basisverzeichnis "/srv/www/vid/mitglied/0" wird für jeden Mitglied ein Subverzeichnis (Mandantenverzeichnis) angelegt, in Ihrem Fall also des Verzeichnis "0".
Unterhalb des Mitgliedverzeichnis kommen die zum Mitglied gehörigen Betriebsverzeichnisse also z. B. "01","03", etc.In diesen Verzeichnissen liegen alle die Daten, die für die Mitglied eines Betriebs identisch sind.

Sollen für Mitglieder spezifische Daten hinterlegt werden, so erzeugen Sie unterhalb des Betriebsverzeichnis ein mitgliedverzeichnis das die Mitgliednummer als Namen trägt. In dieses Verzeichnis können Sie dann alle Mitgliedspezifische Archiv Dateien wie z.B. die Test1 Test2 datei hinterlegen.

Sie erhalten also folgende Verzeichnisstruktur:

/srv/www/vid/mitglied Basisverzeichnis
0 Mandantenverzeichnis
01 Betriebsverzeichnis
10060746 Mitgliedverzeichnis


Die Archivdateien "Test1.001", "Test2.rab" und "Test3.pre" müssen durch einen Punkt getrennt um das Tagesdatum (YYYYMMDD) erweitern werden bevor Sie in die entsprechenden Verzeichnisse eingestellt werden, z.B. Test1.001.20080821.

Vielen Dank im Vorraus!!

Grüße
Serg
Mitglied: datasearch
22.08.2008 um 18:45 Uhr
Hallo Serg,

ich habe dir mal etwas zusammengeschrieben. Das Script kopiert den Quellordner (Parameter 1) in einen Zielordner (Parameter 2) und erweitert dabei alle Dateien um das aktuelle Datum.

Das Script kann leider nicht rekursiv kopieren. Möchtest du deine Struktur automatisch kopieren, sag nochmal bescheid.

01.
#!/bin/bash 
02.
# Parameter 1: zu kopierender Ordner 
03.
# Parameter 2: Zielpfad 
04.
05.
if [[ -d $1  &&  ! -z $1 ]]; then   # PARM1 testen 
06.
 if [[ -d $2 && ! -z $2 ]]; then    # PARM2 testen 
07.
  erweiterung=$(date +%Y%m%d)       # Datum bereitstellen 
08.
  ls -1 $1 | while read a; do       # Ordnerinhalt listen 
09.
   cp -v $1/$a $2/$a.$erweiterung   # Dateien kopieren 
10.
  done 
11.
 else 
12.
  echo FEHLER 2 - Zielordner nicht vorhanden oder nicht angegeben 
13.
  exit 1 
14.
 fi 
15.
else 
16.
 echo FEHLER 1 - Quelle nicht Vorhanden oder nicht angegeben 
17.
 exit 1 
18.
fi
Das Script produziert folgendes:
01.
./datumskopie.sh /home/USER/datum /tmp/datum 
02.
`/home/USER/datum/test1' -> `/tmp/datum/test1.20080822' 
03.
`/home/USER/datum/test1.000' -> `/tmp/datum/test1.000.20080822' 
04.
`/home/USER/datum/test1.002' -> `/tmp/datum/test1.002.20080822' 
05.
`/home/USER/datum/test1.test' -> `/tmp/datum/test1.test.20080822' 
06.
`/home/USER/datum/test1.zip' -> `/tmp/datum/test1.zip.20080822'

Für Ordnerstrukturen müsstest du alle ordner inkl. unterordner per ls auflisten, dateien Filtern, dateinamen erweitern und die ordner im zielpfad anlegen. Dauert mit jetzt zu lange .
Bitte warten ..
Mitglied: datasearch
22.08.2008 um 19:19 Uhr
Ich habe gerade noch ein wenig probiert. Du kannst einfach mit find alle Verzeichnisse im Quellpfad suchen, den passenden ordner im Zielpfad anlegen (wenn nicht vorhanden) und für den jeweiligen Ordner das obige Script ausführen. Ein ansatz währe:

01.
# Parameter1: Mitgliedsname 
02.
 
03.
QUELLPFAD=/var/projekte 
04.
ZIELPFAD=/srv/www/vid 
05.
 
06.
find $QUELLPFAD/$1/* -type d | while read f; do 
07.
 ORDNER=$(echo $f | cut -b 2-) 
08.
 ... 
09.
 CODE HIER ERGÄNZEN :-) 
10.
 ... 
11.
done 
12.
 
Bitte warten ..
Mitglied: sergi62
25.08.2008 um 18:08 Uhr
Hallo, erst mal vielen Dank für deine schnelle Antwort. Ich konnte es erst heute ausprobieren. Leider funktioniert es noch nicht so ganz.
Ich bekomme nicht einmal eine Fehlermeldung.

1) In deinem Beispiel kopierst du alle Dateien, die hinter dem Verzeichnis Datum hinterlegt sind . Muss ich die gleiche Datenstruktur sowohl auf dem Quellpfad als auch auf dem Zielpfad benutzen?
2) Kann ich alles was zum Beipiel hinter /projekte/ hinterlegt ist, auf einen Schlag auf den Zielpfad kopieren? und dies gleichzeitig mit Datum erweitern?

HIer noch mal der Code.

#!/bin/bash
QUELLPFAD=/var/projekte
ZIELPFAD=/srv/www
find $QUELLPFAD/$1/* -type d | while read f; do
ORDNER=$(echo $f | cut -b 2-)
if [[ -d $1 && ! -z $1 ]]; then
if [[ -d $2 && ! -z $2 ]]; then
erweiterung=$(date +%Y%m%d)
ls -1 $1 | while read a; do
cp -v $1/$a $2/$a.$erweiterung
done
else
echo FEHLER 2
exit 1
fi
else
echo FEHLER 1
exit 1
fi
done

Ich hoffe, dass ich mich klar ausgedrückt habe, sonst kann ich dir vielleicht noch mal eine Mail schreiben.
Vielen Dank
Serg
Bitte warten ..
Mitglied: datasearch
26.08.2008 um 09:02 Uhr
1) In deinem Beispiel kopierst du alle Dateien, die hinter dem Verzeichnis Datum hinterlegt sind . Muss ich die gleiche Datenstruktur sowohl auf dem Quellpfad als auch auf dem Zielpfad benutzen?

Jepp. Das script sollte alle DATEIEN im Ordner $1 (ERSTER PARAMETER BEI SCRIPTAUSFUF!) nach $2/dateiname.datum kopieren. $2 (Zweiter Parameter bei Scriptaufruf)

Startest du also datum.sh mit den Parametern projekt211 projekt 123, kopiert das Script alle Dateien im Ordner projekt211/* nach projekt 123/*.datum.

Habe es gerade nochmal auf einer SuSE Kiste probiert. Läuft.

2) Kann ich alles was zum Beipiel hinter /projekte/ hinterlegt ist, auf einen Schlag auf den Zielpfad kopieren? und dies gleichzeitig mit Datum erweitern?

Das zweite Script sollte das erledigen. Es sollte im ordner $QUELLE/$1 alle Unterordner auflisten und in der While-Schleife durcharbeiten. Hier könnte das 1. Script aufgerufen werden. Ich wollte dir nur eine Möglichkeit und keine Lösung präsentieren, damit du auch etwas dabei lernst .
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
Datenbanken
gelöst SQL-Abfrage - DISTINCT - letztes Datum (3)

Frage von emeriks zum Thema Datenbanken ...

Windows 10
gelöst Windows 10 - Datum und Zeitfehler bei Update (3)

Frage von swisstom zum Thema Windows 10 ...

Windows Userverwaltung
gelöst Datum einer Gruppenmitgliedschaft (1)

Frage von slansky zum Thema Windows Userverwaltung ...

Heiß diskutierte Inhalte
Windows Netzwerk
Windows 10 RDP geht nicht (16)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (13)

Frage von Motte990 zum Thema Microsoft Office ...