Da ich mich leider nicht so gut damit auskenne hoffe ich hier auf Hilfe.
ich würde gerne meine Images vom Rpi, die ich wieder über einen usb stick am Rpi einstecke wegen der Größe, kleiner machen. Dazu habe ich ein fertiges script gefunden.. Jetzt würde ich das ganze komplett automatisieren egal ob aus Fhem raus oder vom Rpi selber..
hier meine einzelnen schritte:
sudo mount -t ntfs-3g /dev/sda1 /home/pi/USB
sudo sh /home/pi/PiShrink/pishrink.sh /home/pi/USB/<Name>.img
sudo umount /home/pi/USB
Cool währe wenn er den Namen des images selber suchen kann (da wird nur ein Image sein)
edit: habe gefunden wie man Dateien "suchen" kann aber weiß nicht wie man es einbindet:
find -name "*.img"
Hoffe mir kann einer dabei helfen.
LG Patrick
Na ja, ganz ohne dass du dich mit dem Berechtigungskonzept, der Bedeutung von sudo usw. beschäftigst, wirst du nicht lange klarkommen. Bei ubuntuusers.de gibt es da auch recht ordentliche Grundlageninfo, die ich nur wärmstens zur Lektüre empfehlen kann.
Wie vorgehen:
1. Vielleicht versuchst Du mal, das script mit "*" statt <Name> aufzurufen und dir über die Bedeutung des "*" im Linux-Kontext (und perl/regex-Kontext) Gedanken zu machen.
2. Vermutlich ist es dann das einfachste, die Schritte 1 und 3 in das script pishrink.sh einzubauen; wenn du der Empfhelung gefolgt bist, keine grafische Oberfläche zu installieren, aber vi nicht magst, versuch's mal mit mcedit (ist im paket mc enthalten)
3. Schließlich mußt du entscheiden, ob das script zeitgesteuert von Linux (cronjob) ausgeführt werden soll oder von FHEM aus (ggf. muß dann der user fhem noch die Berechtigung haben, dieses script mit root-Rechten auszuführen. Dazu aber bitte nicht fhem für sudo generell freischalten!
Viel Spaß,
Beta-User
Hallo,
also wenn ich das richtig verstanden habe soll nach dem einstecken des USB sticks ein find über den Stick Inhalt laufen und alle *.img Dateien mit deinem pishrink.sh verarbeiten. Als Übergabeparameter hast du den Dateinamen!?
find /home/pi/USB -type f -name "*.img" -exec sudo /home/pi/PiShrink/pishrink.sh {} \;
Das sollte dein Skript pro gefundener .img Datei ausführen. Voraussetzung dein sudo läuft ohne Passwort. Kann es leider nicht testen.
Gruß
Eisix
oder:
find /home/pi/USB/ -name \*.img -print | xargs /home/pi/PiShrink/pishrink.sh
Interessant finde ich ja das der Stick NTFS formatiert sein soll. Ist er das wirklich?
Du hast ein Shellskript gefunden, hast Du Dir Mal angeschaut was es genau macht? Oder willst das einfach so lostreten?
Einen habe ich noch:
/home/pi/PiShrink/pishrink.sh `find /home/pi/USB -type f -name "*.img"`
Zitat von: Beta-User am 26 September 2017, 17:00:23
Na ja, ganz ohne dass du dich mit dem Berechtigungskonzept, der Bedeutung von sudo usw. beschäftigst, wirst du nicht lange klarkommen. Bei ubuntuusers.de gibt es da auch recht ordentliche Grundlageninfo, die ich nur wärmstens zur Lektüre empfehlen kann.
Wie vorgehen:
1. Vielleicht versuchst Du mal, das script mit "*" statt <Name> aufzurufen und dir über die Bedeutung des "*" im Linux-Kontext (und perl/regex-Kontext) Gedanken zu machen.
2. Vermutlich ist es dann das einfachste, die Schritte 1 und 3 in das script pishrink.sh einzubauen; wenn du der Empfhelung gefolgt bist, keine grafische Oberfläche zu installieren, aber vi nicht magst, versuch's mal mit mcedit (ist im paket mc enthalten)
3. Schließlich mußt du entscheiden, ob das script zeitgesteuert von Linux (cronjob) ausgeführt werden soll oder von FHEM aus (ggf. muß dann der user fhem noch die Berechtigung haben, dieses script mit root-Rechten auszuführen. Dazu aber bitte nicht fhem für sudo generell freischalten!
Viel Spaß,
Beta-User
Einige Grundbegriffe kenne ich ja.
Grafik Oberfläche brauche ich nicht.
Und ich will das manuell starten weil für ein komplett backup die karte raus muss und das PiShrink script nicht auf meinem mac läuft, muss er danach wieder zurück auf Linux
Zitat von: Eisix am 26 September 2017, 17:05:10
Hallo,
also wenn ich das richtig verstanden habe soll nach dem einstecken des USB sticks ein find über den Stick Inhalt laufen und alle *.img Dateien mit deinem pishrink.sh verarbeiten. Als Übergabeparameter hast du den Dateinamen!?
find /home/pi/USB -type f -name "*.img" -exec sudo /home/pi/PiShrink/pishrink.sh {} \;
Das sollte dein Skript pro gefundener .img Datei ausführen. Voraussetzung dein sudo läuft ohne Passwort. Kann es leider nicht testen.
Gruß
Eisix
Dateinamen Vergebe ich selber aber immer mit Datum also variable.
Es würde dann nur eine .img Datei geben. Das Passwort kann ich dann ja eingeben.
Zitat von: CoolTux am 26 September 2017, 17:07:12
Interessant finde ich ja das der Stick NTFS formatiert sein soll. Ist er das wirklich?
Du hast ein Shellskript gefunden, hast Du Dir Mal angeschaut was es genau macht? Oder willst das einfach so lostreten?
NTFS bis jetzt ja,
Und das script haben viele Leute drüber geschrieben und laufenlassen habe ich es auch
Ergebnis war ein image von 16GB auf 3,2GB
https://github.com/Drewsif/PiShrink (https://github.com/Drewsif/PiShrink)
Dann werde ich jetzt mal testen :)
Zitat von: betateilchen am 26 September 2017, 17:06:59
oder:
find /home/pi/USB/ -name \*.img -print | xargs /home/pi/PiShrink/pishrink.sh
Ergibt:
xargs: /home/pi/PiShrink/pishrink.sh: Keine Berechtigung
Zitat von: Eisix am 26 September 2017, 17:05:10
find /home/pi/USB -type f -name "*.img" -exec sudo /home/pi/PiShrink/pishrink.sh {} \;
Ergibt:
sudo: /home/pi/PiShrink/pishrink.sh: Befehl nicht gefunden
Lange rede kurzer sinn:
ändere ich das auf
find /home/pi/USB -type f -name "*.img" -exec sudo sh /home/pi/PiShrink/pishrink.sh {} \;Läuft es DANKE :)
Shrunk /home/pi/USB/Rpi3_deb9.2017.09.27.img from 15G to 3,3G
Zitat von: SamNitro am 26 September 2017, 18:33:04
Ergibt:
xargs: /home/pi/PiShrink/pishrink.sh: Keine Berechtigung
naja, wenn das Skript (warum auch immer) nur von root ausgeführt werden darf, musst Du das sudo natürlich auch angeben:
find /home/pi/USB/ -name \*.img -print | xargs sudo /home/pi/PiShrink/pishrink.sh
Linux Grundlagen...
Mal schauen wie die Rechte für die Datei sind.
Davon mal ganz ab muss das Script mit root Rechten laufen da systemnahe Anwendungen gestartet werden wo nur root Rechte für hat.
Hatte es mit sudo xargs versucht.
Sorry das nicht alle vom fach sind.
Ich suche halt nur nach einer Methode ein Backup auf eine erschwingliche Größe zu bekommen und so kann ich mir helfen.
Vom Fach muss man nicht sein, aber wenigstens die Anleitung lesen
Zitat
[user@localhost PiShrink]$ sudo ./shrink.sh pi.img
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/loop1: 88262/1929536 files (0.2% non-contiguous), 842728/7717632 blocks
resize2fs 1.42.9 (28-Dec-2013)
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/loop1 to 773603 (4k) blocks.
Steht auf der von Dir verlinkten GitHub Seite
funktioniert hat es doch wollte es nur einfacher haben
Zitat von: SamNitro am 26 September 2017, 16:42:55
ich würde gerne meine Images vom Rpi, die ich wieder über einen usb stick am Rpi einstecke wegen der Größe, kleiner machen.
*grmpf*... ich war gedanklich die ganze Zeit beim Verkleinern von Bilddateien. Bis ich das hier gelesen habe:
Zitat von: CoolTux am 26 September 2017, 19:15:53
muss das Script mit root Rechten laufen da systemnahe Anwendungen gestartet werden
Interessanterweise hat das keinerlei Einfluss auf den Inhalt meiner bisherigen Antworten hier im Thread - die passen trotzdem 8)
Universelle Antworten sind immer perfekt [emoji2]
Gesendet von iPhone mit Tapatalk