URL: https://www.overclockers.at/linux/backup-von_240481/page_1 - zur Vollversion wechseln!
im moment benutze ich ein kleines script, mit dem ich in unregelmäßigen abständen ein backup der system- ssd meines servers mache:
das ist aber nicht gerade gerade eine optimale lösung:Code:#!/bin/bash NOW=$(date +"%Y-%m-%d") dd if=/dev/sde of=/storage/centos_backup/dd_$NOW.img
Ich mach das auf meinem öffentlichen Server so:
Code:rsync -aAXv --delete /* remoteserver.bla:/backups/ --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found}
Ich hab privat auf jedem meiner zu sichernden Hosts ein Script /usr/local/sbin/boxtotar:
Code:#!/bin/sh export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" test -t 0 && echo "stdout is a tty - bye." && exit 1 nice -n20 tar cp --wildcards --exclude="*_nobak*" --lzop --one-file-system --ignore-failed-read --checkpoint=10000 $(awk '/^\/dev/{print $2}' /proc/mounts)
Code:command="/usr/local/sbin/boxtotar",no-pty,no-port-forwarding ssh-rsa AAAAB3NzaC1yc2EAAA[...]1glBYf6w== Used for creating backups.
Code:#!/bin/bash [[ -z ${1} ]] && exit 1 set -e tdir="${HOME}/backup/${1}" mkdir -p "${tdir}" set -o noclobber if df -Pk "${tdir}" | awk '{if(NR==2){if($2 > 8192000){exit 0}else{exit 1}}}' then nice -n 15 ssh -c aes128-ctr -oCompression=no -oBatchMode=yes -i ${HOME}/.ssh/network_backup_id root@"${1}" /usr/local/sbin/boxtotar > "${tdir}/${1}_$(date +%F).tar.lz" retval="$?" if [[ ${retval} == 0 ]] then find "${tdir}" -mtime +22 -a -type f -delete fi exit "${retval}" else printf '%s has insufficient free diskspace for completing the scheduled job.\n' "${tdir}" 1>&2 exit 1 fi
Ist alles ein Filesystem weils nur ein winziger VPS ist.
/, /dev/, /proc/ und /sys/ sind auf modernen Kernels/Distros nie nur ein Dateisystem. /run/ ist auch meist(immer?) tmpfs, /tmp/ oft, und /mnt/ und /media/ hast du wohl drin, um etwaige temp. Mounts nicht ins Backup zu ziehen.
/run/, /tmp/, /mnt/ und /media/ sind leider kein tmpfs aber trotzdem verkürzt sich die Liste. /mnt/ und /media/ hab ich auch mal rausgetan weil ich dort eig. schon lang nix mehr mounte. Sieht jetzt so aus
:
Code:rsync -aAvXx --delete /* remoteserver.bla:/backups/ --exclude={/tmp/*,/run/*,/lost+found}
danke für die tipps.
ich habe mir schon mal überlegt das backup mit rsync zu machen, aber mit dd war es zu schnell erledigt deshalb habe ich in die richtung nicht weitergemacht
das backup von / mache ich nur auf das im gleichen gerät verbaute raid5 (und kopiere diese backups in unregelmäßigen abständen auf eine externe hdd), außerdem hätte ich gerne zumindest die letzten paar backups griffbereit. ists möglich mit rsync gleich direkt in ein tar- archiv zu kopieren?
@colo deinen code muss ich mir noch genauer anschauen, da verstehe ich nicht alles. ein paar sachen kann ich davon sicher übernehmen, z.b. den speicherplatzcheck.
edit: habe jetzt einen versuch mit rsync gestartet.
--one-file-system wurde von rsync dezent ignoriert, nicht nur hat rsync versucht mein raid auf mein raid zu sichern, jetzt habe ich einige symlinks die sich nicht löschen lassen, z.b.:Code:rsync -aAX --one-file-system --exclude={/boot,/tmp,/run,/mnt,/media,/lost+found} /* /storage/centos_backup/backup_$NOW
meine letzte rm- spielerei mit symlinks war nicht so toll, deshalb warte ich lieber auf input von den spezialistenCode:[root@localhost links]# find -type l | xargs rm rm: cannot remove `./dev/.udev/links/diskx2fby-idx2fdm-name-vg_homeserver-lv_root/b253:0': No such file or directory

Das --one-file-system wird nicht ignoriert, aber es wird jedes Argument einzeln betrachtet. Wenn du ihm also /* gibst, ist es so, als ob du es für jedes Argument einzeln aufrufen würdest. Wenn es also zu /dev kommt, wird von dort alles gesynced, nur weiter unten gemountete Filesysteme werden übersprungen, z.B. /dev/pts.
danke für den tipp, skirpt ist geändert 
aber was mache ich jetzt mit den symlinks?
./dev/.udev/links/diskx2fby-idx2fdm-name-vg_homeserver-lv_root/b253:0 gibt es aber rm sagt "No such file or directory"?
ich denke die / machen probleme. ich kann die links von hand löschen, sind aber leider ca 80.
Ich würds so machen:
Alle Angaben sind wie immer ohne Gewähr (aber hier vielleicht mit GewehrCode:find . -type l -exec rm -f {} +
).hat funktioniert, danke!
gibts eine möglichkeit, rsync in ein archiv "hinein kopieren" zu lassen?
Du kannst rsync ein lokales Verzeichnis als destination geben und dieses danach mit tar archivieren und ggf. komprimieren. rsync kann auch "on-the-fly" komprimieren, Parameter -z oder --compress, mehr dazu unter `man rsync`
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026