Möglicherweise wird der Stick nicht dorthin gemountet.
Schreib doch mal hin: lsblk
Dann solltest du - wenn der Stick überhaupt gemounted wird - den Mount-Point gezeigt bekommen.
Möglicherweise wird der Stick nicht dorthin gemountet.
Schreib doch mal hin: lsblk
Dann solltest du - wenn der Stick überhaupt gemounted wird - den Mount-Point gezeigt bekommen.
KERNEL!="sd[a-z]*", GOTO="script_end"
Ich nehme mal an, dass zwischen KERNEL und dem ! eine Leertaste eingefügt werden muss und genauso in Zeile 2 nach PROGRAM
Hier ist das ganz gut erklaert.
Super - danke! Kannte ich noch nicht!
Man kann in der Crontab auch den PATH setzen und muss dann nicht ueberall im aufgerufenen Script absolute Pfade benutzen
Kommt die Pfadangabe dann auch bei einem untergeordneten Programm (also einem, das von dem in der Crontab aufgerufen wird) an?
Wie löst man das?
Hallo pishrink-Interessierte!
Bei mir läuft jetzt pishrink als Cronjob fehlerfrei durch, nachdem ich an allen möglichen Stellen absolute Pfade eingebaut habe. (Nochmal danke an Rasp-Berlin ) Auch der Fehler, dass parted nicht installiert sei, ist weg.
LG Christian
Allerdings vestehe ich nicht wo Du Probleme mit dem EInrichten eines nfs Servers hast. Den installierst Du und konfigurierst noch in /etc/exports Deine Freigaben und habe fertig
Na ja, ich möchte die Backup-Images tatsächlich remote auf einem NAS-Laufwerk (ein einfaches QNAP - Bezeichnung habe ich z.Zt nicht parat) ablegen. Zum Zeitpunkt der Experimente mit raspiBackup war die gerade neu und ich habe mich noch nicht recht ausgekannt/getraut...
Vielleicht müsste ich mich mal wieder dranmachen, weil rsync wollte ich schon nützen.
Lool ... das ist aus der Zeit wo ich noch dachte dass man aus pishrink was machen kann und meinen Beitrag geleistet habe
Trotzdem vielen Dank für deine Mitentwicklung. Ich verwende pishrink eigentlich ganz gerne, zumal dann beim Übertragen der Images auf SD-Karten der eigentlich "gleichen" Kapazität die lästigen Fehlermeldungen wegfallen.
Display MoreDas beste Backuptool ist m.M.n immer noch raspiBackup.
Sicherung per rsync.
Da brauchts kein pishrink.......
Installieren, ein paar Einstellungen und läuft.
Ich habe mal mit raspiBackup auf meinem Raspi4 (mit SSD) experimentiert, hatte aber (als alter Windows-User ) Probleme mit der Einrichtung eines vernünftigen NFS-Servers, der ja wohl zum vollständigen Ausnützen der Fähigkeiten von raspiBackup notwendig ist.
LG Christian
Wo hast Du pishrink-neu her? Ist traurig zu sehen dass durch den fehlenden Support bei pishrink diverse Derivationen entstehen. Die Abfrage macht durchaus Sinn und sollte in pishrink drin sein.
Es handelt sich um die Version v0.1.2 von hier
Bei mir heißt die halt pishrink-neu.sh weil es auch mal eine alte Version gab und ich die beiden bei mir unterscheiden wollte.
Als User oder als root?
Als root !
Gerade probiert:
root@DomoticzPI3b:~# apt install parted
Reading package lists... Done
Building dependency tree
Reading state information... Done
parted is already the newest version (3.2-25).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
root@DomoticzPI3b:~#
In der pishrink-neu.sh ist bei Zeile 237 auch so eine merkwürdige Abfrage drin ob bestimmte Pakete installiert sind:
Nein, der sagt eindeutig, dass parted nicht installiert ist.
Komisch, denn ein which parted gibt aus:
/usr/sbin/parted
Er "backupt" noch. Ich glaube, in der pishrink-neu.sh ist auch noch eine Überarbeitung auf absolute Pfade nötig.
Hier schon mal (vor dem Ende des Backups) die Ausgaben in /root/backup-vollzug.txt:
+ mount -t cifs //192.168.178.1/fritz.nas/NAS256/Home-Automation/Sicherungen /mnt -o user=xxxxx,password=yyyyy,vers=2.0,noserverino
+ WER=user
+ SUBDIR=Domoticz
+ DIR=/mnt/user/Domoticz
+ echo 'Starting RaspberryPI backup process!'
Starting RaspberryPI backup process!
++ dpkg -s pv
++ grep Status
+ PACKAGESTATUS='Status: install ok installed'
+ [[ Status: install ok installed == S* ]]
+ echo 'Package '\''pv'\'' is installed.'
Package 'pv' is installed.
+ '[' '!' -d /mnt/user/Domoticz ']'
++ hostname
++ date +%Y.%m.%d_%H.%M.%S
+ OFILE=/mnt/user/Domoticz/DomoticzPI3b_backup_2022.11.24_21.39.04
+ sync
+ sync
+ echo 'Stopping some services before backup.'
Stopping some services before backup.
+ echo ' Domoticz'
Domoticz
+ /usr/sbin/service domoticz stop
+ echo 'Backing up SD card to: /mnt/user/Domoticz/DomoticzPI3b_backup_2022.11.24_21.39.04'
Backing up SD card to: /mnt/user/Domoticz/DomoticzPI3b_backup_2022.11.24_21.39.04
+ echo 'This will take some time depending on your SD card size and read performance. Please wait...'
This will take some time depending on your SD card size and read performance. Please wait...
++ /usr/sbin/blockdev --getsize64 /dev/mmcblk0
+ SDSIZE=15997075456
+ /usr/bin/pv -tprIeb /dev/mmcblk0 -s 15997075456
+ /usr/bin/dd of=/mnt/user/Domoticz/DomoticzPI3b_backup_2022.11.24_21.39.04.img bs=1M conv=sync,noerror iflag=fullblock
Display More
LG Christian
Juhuuuuuuuuuuuuuuu!
"Die Scheiße geht!"
Kaum macht man mal das, was die Helfer hier im Forum sagen, funktioniert es!
Verwendet habe ich dank
hyle die Weiterleitung der Ausgaben (#6)
llutz die zusätzlichen Schalter am Scriptanfang (#7)
Rasp-Berlin die konsequente Angabe der absoluten Pfade (#9)
Nochmals mein herzliches Dankeschön - wieder dazugelernt!
LG Christian
Als Usershell schon, auch als Systemshell? idR eher /bin/sh und readlink -f $(which sh) ...
Bei mir kommt als Ausgabe: /usr/bin/dash
Was soll das Semikolon am ende der Zeile?
Hierbei musst du für den Befehl "blockdev" den Pfand angeben, in dem er liegt. Bei den anderen Programmen, welche du n diesem Crontab-Skript aufrufst, hast du das ja gemacht.
Das Semikolon stammt aus dem Original-Script! (Keine Ahnung, was es bewirkt. Aber das Script läuft mit und ohne das Semikolon, hatte ich ausprobiert)
So jetzt aber mal "Butter bei die Fische":
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.aIaT1f/crontab installed on Thu Nov 24 15:47:24 2022)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').
#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
0 3 * * 7 /root/backup-domoticz-neu.sh >>/root/backup-vollzug.txt
Display More
# auch schon mal ausprobiert:
#0 3 * * 7 /bin/bash /root/backup-domoticz-neu.sh >>/root/backup-vollzug.txt
Und jetzt das Backup-Script:
#!/bin/bash
mount -t cifs //192.168.178.1/fritz.nas/NAS256/Home-Automation/Sicherungen /mnt -o user=XXXXXX,password=YYYYYY,vers=2.0,noserverino
WER='user'
SUBDIR='Domoticz'
DIR=/mnt/$WER/$SUBDIR
echo "Starting RaspberryPI backup process!"
# First check if pv package is installed, if not, install it first
PACKAGESTATUS=`dpkg -s pv | grep Status`;
if [[ $PACKAGESTATUS == S* ]]
then
echo "Package 'pv' is installed."
else
echo "Package 'pv' is NOT installed."
echo "Installing package 'pv'. Please wait..."
apt-get -y install pv
fi
# Check if backup directory DIR exists
if [ ! -d "$DIR" ];
then
echo "Backup directory $DIR doesn't exist, creating it now!"
mkdir -p "$DIR"
fi
OFILE="$DIR/$(hostname)_backup_$(date +%Y.%m.%d_%H.%M.%S)"
sync; sync
echo "Stopping some services before backup."
echo " Domoticz"
service domoticz stop
echo "Backing up SD card to: $OFILE"
echo "This will take some time depending on your SD card size and read performance. Please wait..."
SDSIZE=`blockdev --getsize64 /dev/mmcblk0`;
/usr/bin/pv -tprIeb /dev/mmcblk0 -s $SDSIZE | /usr/bin/dd of="$OFILE.img" bs=1M conv=sync,noerror iflag=fullblock
RESULT=$?
echo "Start the stopped services again."
echo " Domoticz"
service domoticz start
# If command has completed successfully, delete previous backups and exit
if [ $RESULT = 0 ];
then
echo "Erfolgreiches Backup."
echo "Backup wird verkleinert. Bitte warten..."
/root/pishrink-neu.sh "$OFILE.img"
RESULT_2=$?
if [ $RESULT_2 = 0 ];
then
echo "Shrink OK"
mv $OFILE.img $OFILE-shrinked.img
else
echo "Shrink fehlerhaft"
fi
echo "RaspberryPI Backup komplett! FILE: $OFILE.img"
echo "---------------Erfolg--------------------------------------"
exit 0
else
echo "Backup fehlerhaft !!!."
# echo "Please check there is sufficient space on the HDD."
# rm -f $OFILE
echo "RaspberryPI Backupprocess failed!"
echo "---------------Fehler--------------------------------------"
exit 1
fi
Display More
Bitte hängt euch nicht an der (Teil-)Übersetzung und an dem mangelhaften Fehlerabfangen am Schluss auf - das kommt später dran!!!
Das vers=2.0 beim Mounten des Fritzbox-NAS-Verzeichnisses war nötig, weil sonst (z.B. mit vers=default oder vers=3.1.1 ein Mount verweigert wurde. (Ist erstmal egal)
Hier noch die Ergebnisse in
Starting RaspberryPI backup process!
Package 'pv' is installed.
Stopping some services before backup.
Domoticz
Backing up SD card to: /mnt/user/Domoticz/DomoticzPI3b_backup_2022.11.24_20.53.01
This will take some time depending on your SD card size and read performance. Please wait...
Start the stopped services again.
Domoticz
Erfolgreiches Backup.
Backup wird verkleinert. Bitte warten...
pishrink-neu.sh v0.1.2
pishrink-neu.sh: ERROR occurred in line 237: parted is not installed.
Shrink fehlerhaft
RaspberryPI Backup komplett! FILE: /mnt/user/Domoticz/DomoticzPI3b_backup_2022.11.24_20.53.01.img
Display More
Nach Please wait... müsste die Ausgabe von pv bzgl. des Fortschritts von dd erfolgen. Alles nach dem Neustart des service ist Makulatur!
LG Christian
@ all
Herzlichen Dank für die vielen Ratschläge
Ich melde mich später nochmal mit der Übermittlung von Script und dem crontab. Ich glaube, dann seht ihr klarer
LG Christian
Denke da ist nichts...
Was ist das für ein raspi-config?
Bei mir (legacy - buster vom 2022-09-22) kommt
im Menü Performance-Options
Gruß
Christian
Danke auch an hyle !
Ich melde mich per ssh als pi an, wechsle per sudo -i auf das root-konto.
Dort starte ich crontab -e , verändere also wirklich den root-Cronjob (erkennbar mit cat /var/spool/cron/crontabs/root)
Das Script ist ausführbar und hat den erforderlichen Shebang. Die erste Zeile ist bei mir (abweichend vom Github-Script) der Shebang.
Das Script läuft ja wirklich ab (im Cronjob auch, allerdings ohne die oben gezeigte /usr/bin/pv .... Zeile auszuführen)
Trotzdem Danke schonmal!
Christian
Versuche mal, alles in eine .sh zu packen und diese dann auszuführen.
Danke fred0815
Sorry, vergessen zu schreiben, dass ich das schon probiert hatte - selbes Ergebnis
Hallo, liebe Forenteilnehmer,
ich habe Probleme mit der Ausführung eines Backup-Programmes mittes eines Cron-Jobs
Zunächst die Grundinfos:
Model : Raspberry Pi 3 Model B Rev 1.2
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)" = Legacy (Buster) ohne Desktop vom 2022-09-22
Verwendetes Backupprogramm: rPi_backup.sh
Nun zum Problem:
Das Backup-Programm läuft ohne Probleme, wenn es als root in der Konsole gestartet wird.
Wenn ich aber einen root-cronjob mittels crontab -e anlege, um das Backup-Programm zeitgesteuert ablaufen zu lassen, klappt es nicht.
Die dd-Zeile wird anscheinend nicht ausgeführt. Hier der entsprechende Programm-Ausschnitt:
...
echo "Backing up SD card to: $OFILE"
echo "This will take some time depending on your SD card size and read performance. Please wait..."
SDSIZE=`blockdev --getsize64 /dev/mmcblk0`;
/usr/bin/pv -tprIeb /dev/mmcblk0 -s $SDSIZE | /usr/bin/dd of="$OFILE.img" bs=1M conv=sync,noerror iflag=fullblock
...
Das Programm pv ist installiert.
Ich tippe auf die Pipe-Ausführung, bei der sich Cron verhaspelt. Jedenfalls wird die /usr/bin/pv .... Zeile schlicht übersprungen und das Backup-Programm mit den anschließenden Befehlen fortgesetzt. Der Variablenwert für $SDSIZE wird ordnungsgemäß erstellt und übernommen (getestet mit echo)
Ich hoffe, ich habe den Fehler einigermaßen klar beschrieben und hoffe, dass mir jemand einen Hinweis geben kann, wie ich ihn beheben könnte.
Schon im Voraus Danke für eure Mühe!
Christian
Danke Martin28 für den Link
Im 2. Eintrag steht die Lösung: Have you checked "Auto refresh status page" in the "Options" menu?
Nach einem Update des RPi-Monitors ist jetzt im Options-Menü der Web-GUI ein Anklickkästchen, was vorher m.M.n. noch nicht da war.
Anklicken - fertig!