Neue Antwort schreiben 
 
Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Der Code-Schnippsel-Thread
mrshadowtux Offline
borsenrap

Beiträge: 558
Registriert seit: Jul 2019
Beitrag #791
RE: Der Code-Schnippsel-Thread
Interessant, dann hat sich zwischen Catalina und Big Sur die Syntax von sed geringfügig geändert. Danke für die Info!
11.05.2021 22:54
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
tk1908 Offline
Unixer

Beiträge: 7.353
Registriert seit: Apr 2009
Beitrag #792
RE: Der Code-Schnippsel-Thread
Hab mal was gebastelt.

Code:
#!/bin/bash

echo "############################################"
echo "############################################"
echo "#    Backup-Script                             #"
echo "#    Author: tk1908                             #"
echo "#    E-Mail: tk1908@tkbrew.net                 #"
echo "#                                             #"
echo "############################################"
echo "############################################"

OS=$(uname)


case $OS in
  Linux)    ROOTPATH = "/mnt";;


  Darwin)   ROOTPATH = "/Volumes";;
esac


HOSTS=(krypton keppler tesla)
#SHARES=(applications backups documents games misc movies music pictures series)
SHARES=( $(showmount -e krypton |cut -d " " -f1 | sed '1d') ) # Gedankengang! Nicht prod. Reines dev.


echo "Migrate from Data from krypton to xenon01"
echo "Making Directorystructure  and mounting shares"

for HOST in ${HOSTS[*]}
do
    sudo mkdir $ROOTPATH/$HOST/

done
    
for SHARE in ${SHARES[*]}
    do  
        sudo mkdir $ROOTPATH/$HOST/$SHARE/
        mount $HOST$SHARE     
    done
done

echo mounting SHARES

sudo mount $HOST[]


function tier2_Backup {
  
  rsync -rvu $ROOTPATH/$HOSTS[0]/documents/ $ROOTPATH/$HOSTS[1]/documents
  rsync -rvu $ROOTPATH/$HOSTS[0]/hoerspiele/ $ROOTPATH/$HOSTS[1]/hoerspiele
  rsync -rvu $ROOTPATH/$HOSTS[0]/music/ $ROOTPATH/$HOSTS[1]/music
  rsync -rvu $ROOTPATH/$HOSTS[0]/pictures/ $ROOTPATH/$HOSTS[1]/pictures
  rsync -rvu $ROOTPATH/$HOSTS[0]/videos/ $ROOTPATH/$HOSTS[1]/videos



}

function tier3_Backup {

rsync -rvu $ROOTPATH/$HOSTS[1]/applications/ $ROOTPATH/$HOSTS[2]/applications
rsync -rvu $ROOTPATH/$HOSTS[1]/documents/ $ROOTPATH/$HOSTS[2]/documents
rsync -rvu $ROOTPATH/$HOSTS[1]/games/ $ROOTPATH/$HOSTS[2]/games
rsync -rvu $ROOTPATH/$HOSTS[1]/hoerspiele/ $ROOTPATH/$HOSTS[2]/hoerspiele
rsync -rvu $ROOTPATH/$HOSTS[1]/misc/ $ROOTPATH/$HOSTS[2]/misc
rsync -rvu $ROOTPATH/$HOSTS[1]/music/ $ROOTPATH/$HOSTS[2]/music
rsync -rvu $ROOTPATH/$HOSTS[1]/videos/Filme $ROOTPATH/$HOSTS[2]/movies
rsync -rvu $ROOTPATH/$HOSTS[1]/videos/Serien $ROOTPATH/$HOSTS[2]/series

}


echo cleaning

sudo umount $SOURCEMOUNTPATH
sudo umount $TARGETMOUNTPATH
sudo rm -rf /mnt/*

Aktuell suche ich noch nach einer Möglichkeit, dein Output von showmount -e <hostname> so zu parsen, dass ich ihn als Input für meinen Mount-Befehl nutzen kann. Cutten kann ich den Output schon, aber irgendwas ist da noch schief. Vielleicht hat von euch ja jemand ne Idee.

[Bild: Rz3JNLI.gif]
Meine Beiträge stehen unter der MIT-Lizenz:D

(09.04.2016 13:26)tk1908 schrieb:  externe HDD am Router? Klar ich tausch mein Auto gegen nen Tretroller mit Bremsklotz.
(Dieser Beitrag wurde zuletzt bearbeitet: 12.05.2021 09:44 von tk1908.)
12.05.2021 08:07
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
tk1908 Offline
Unixer

Beiträge: 7.353
Registriert seit: Apr 2009
Beitrag #793
RE: Der Code-Schnippsel-Thread
Leute ich steh gerade massiv aufm Schlauch

Code:
#!/bin/bash

arr=(Foo1 Foo2 Foo3)

function test
{
   echo $arr[1]

}

test

Ausgabe ist

Code:
Foo1[1]

Eigentlich will ich als Ausgabe nur Foo1. Was mache ich falsch?

[Bild: Rz3JNLI.gif]
Meine Beiträge stehen unter der MIT-Lizenz:D

(09.04.2016 13:26)tk1908 schrieb:  externe HDD am Router? Klar ich tausch mein Auto gegen nen Tretroller mit Bremsklotz.
07.06.2021 08:17
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
mrshadowtux Offline
borsenrap

Beiträge: 558
Registriert seit: Jul 2019
Beitrag #794
RE: Der Code-Schnippsel-Thread
So gehts:
Code:
#!/bin/bash
arr=(Foo1 Foo2 Foo3)
echo ${arr[0]}

Ausgabe:
Code:
11:28 merlinfeld@borsenmac /Users/merlinfeld
% bash arr.sh
Foo1

Gewöhn dir am besten bei allen Variablen in Bash an, ihre Namen in {} einzupferchen, zum Beispiel ${example}
07.06.2021 10:30
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
tk1908 Offline
Unixer

Beiträge: 7.353
Registriert seit: Apr 2009
Beitrag #795
RE: Der Code-Schnippsel-Thread
Nice, funzt. Danke :)

[Bild: Rz3JNLI.gif]
Meine Beiträge stehen unter der MIT-Lizenz:D

(09.04.2016 13:26)tk1908 schrieb:  externe HDD am Router? Klar ich tausch mein Auto gegen nen Tretroller mit Bremsklotz.
07.06.2021 11:13
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
MS-DOS Manfred Offline
#FreeLayla

Beiträge: 2.425
Registriert seit: Jul 2008
Beitrag #796
RE: Der Code-Schnippsel-Thread
(07.06.2021 10:30)mrshadowtux schrieb:  So gehts:
Code:
#!/bin/bash
arr=(Foo1 Foo2 Foo3)
echo ${arr[0]}

Gewöhn dir am besten bei allen Variablen in Bash an, ihre Namen in {} einzupferchen, zum Beispiel ${example}

In so 'ne Falle bin ich selber auch mal reingetappt. Scheiße, wenn man Powershell sowie C# oder gar die fish-Shell gewohnt ist.

Make the WHF great again!
(Dieser Beitrag wurde zuletzt bearbeitet: 08.06.2021 05:27 von Blue.)
07.06.2021 18:25
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Blue Offline
Seit dem 17.10.2006 dabei!

Beiträge: 21.527
Registriert seit: Jul 2008
Beitrag #797
RE: Der Code-Schnippsel-Thread
@amok_alex

Letzte Warnung.
bitte unterlasse diese unsinnigen hashtags die nichts mit dem Thema zu tun haben. Das steigert auch die Qualität deiner Postings.
08.06.2021 05:28
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
s4ndwichMakeR Offline
Realitätsfeinmotoriker‮

Beiträge: 5.195
Registriert seit: Jul 2008
Beitrag #798
RE: Der Code-Schnippsel-Thread
(07.06.2021 10:30)mrshadowtux schrieb:  Gewöhn dir am besten bei allen Variablen in Bash an, ihre Namen in {} einzupferchen, zum Beispiel ${example}

Bei der Gelegenheit sollte man sich auch gleich angewöhnen, immer "${foo}" zu schreiben, vor allem, wenn man es mit Datei-/Directorynamen zu tun hat, die Leerzeichen beinhalten können, insb. bei so Sachen wie for f in *; do … (also Files in einer Schleife behandeln) usw. Oder gibt es dafür einen besseren Weg, den ich noch nicht entdeckt habe?

Wüsste jetzt auch aus dem Steigreif nicht, wie sich das {} in find . -type f -iname "*.bla" -exec command {} \; verhält.

Und ja, da ist noch find -print0 nach xargs -0 pipen.

• • • – • – – • – –
(Dieser Beitrag wurde zuletzt bearbeitet: 08.06.2021 17:50 von s4ndwichMakeR.)
08.06.2021 17:48
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
mrshadowtux Offline
borsenrap

Beiträge: 558
Registriert seit: Jul 2019
Beitrag #799
RE: Der Code-Schnippsel-Thread
Volle Zustimmung, mache ich auch immer
08.06.2021 18:29
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
MS-DOS Manfred Offline
#FreeLayla

Beiträge: 2.425
Registriert seit: Jul 2008
Beitrag #800
RE: Der Code-Schnippsel-Thread
Ebenso sollte man bei Bash-Scripten immer beachten, dass Schleifen mit dem Keyword 'do' eröffnet und mit 'done' abgeschlossen werden. Jedes mal vergess ich das nämlich, weil von anderen C-like-Sprachen gewohnt, die geschweiften Klammern den Beginn und das Ende des jeweiligen Blocks definieren. Nur haben die bei der Bash halt ne andere Funktion als den Beginn und Abschluss eines Anweisungsblocks zu kennzeichnen.

Make the WHF great again!
14.06.2021 19:11
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Neue Antwort schreiben 


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste