ctserver.org Foren-Übersicht
Home |  Forum |  FAQ |  Suchen |  Haftungsausschluß |  Impressum
Downloads |  Chat |  RSS Feed |  Links |  Shop |  Partner
Einloggen, um private Nachrichten zu lesen |  Registrieren |  Login

[HowTo] Backups mit Snapshots
Gehe zu Seite 1, 2, 3  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    ctserver.org Foren-Übersicht -> HOWTOs
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
neobiker
Moderator
Moderator


Anmeldungsdatum: 11.08.2005
Beiträge: 1076
Wohnort: Nürnberg / Umgebung

BeitragVerfasst am: 02 Feb 2006 22:25    Titel: [HowTo] Backups mit Snapshots Antworten mit Zitat Nach oben Nach unten

HowTo: Den Server mit Snapshots sichern

Folgender Empfehlung ging ich bei der Suche nach einer RSync-Lösung nach:
max4ctserver hat folgendes geschrieben:
wer sich für backup-lösungen für den server interessiert, dem sei alternativ noch folgendes empfohlen:

a) partimage
vorteil: kostenlos
nachteil: nicht im laufenden betrieb

b) rsync
vorteil: ssh, remote, komprimiert, diff-basiert
empfehlung: google -> "mike rubel" und "rsync" mit einer genialen rsync-lösung für inkrementelle backups und jeder menge links zu backup-scripts (vgl. http://www.mikerubel.org/computers/rsync_snapshots/)

viel erfolg!
ciao max4ctserver

Basierend auf den Informationen von Mike Rubels Konzept habe ich ein dort verlinktes 'mirror'-Skript so modifiziert, dass es Backup's von lokalen Verzeichnissen erstellt, und diese auch noch monatlich/jährlich archiviert.

Achtung: Es wird eine 'Snapshot'-Technologie verwendet!

Diese ermöglicht es, viele Snapshots zu erzeugen, ohne unnötigen Speicherplatz zu verbrauchen. Nur tatsächlich geänderte Files belegen neuen Speicherplatz in dem Backup-Verzeichnis. D.h. man kann durchaus 30 Backups haben, welche in Summe nur 115% Platz eines einzelnen Backups belegen (weil sich nur 15% des ganzen tatsächlich geändert haben).

Ich lasse das Skript deshalb teilweise 3-mal täglich laufen, dann kann ich Fehler die ich um 20:00 Uhr mache auf den Stand von 18:00 zurücksetzen...geht schnell, kostet nix und bringt viel wenn man's einmal wirklich braucht!)

Konzept:
Eine eigene Platte (!) für die Sicherungen (hier /dev/sdc1)
-> Eintrag unter /etc/fstab
Code:
/dev/sdc1         /backup         ext3    defaults        0       0
localhost:/backup /snapshot     nfs     ro,user,auto    0       0

Der 2.te Eintrag dient dazu, /backup nur readonly als /snapshot auf dem server (per NFS) zu mounten.
Arrow Hier muss ein NFS-Server ebenfalls laufen, Konfig-Datei /etc/exports
Code:
/backup 127.0.0.1(sync,secure,ro,no_root_squash)


Arrow Das können wir dann auch per Samba-Share wieder auf allen PC's mounten - so kann sich jeder User selber per Drag-&-Drop sein persönliches Backup vom Server holen...jederzeit...ohne Admin!

Unter /backup (/snapshot) findet man dann hierarchisch alle Snapshots wieder:
Code:
server:/snapshot/server-data#
-rw-r--r--  1 root root    0 2006-02-02 20:40 lastrun.time

drwxr-xr-x  3 root root 4096 2006-02-02 04:04 daily/
drwxr-xr-x  5 root root 4096 2006-02-01 22:36         snapshot-2006-02-01-04/

drwxr-xr-x  5 root root 4096 2006-02-02 20:40 hourly/
drwxr-xr-x  5 root root 4096 2006-02-02 00:25     snapshot-2006-02-02-00/
drwxr-xr-x  5 root root 4096 2006-02-02 04:04     snapshot-2006-02-02-04/
drwxr-xr-x  3 root root 4096 2006-02-02 20:04 monthly/
drwxr-xr-x  5 root root 4096 2006-02-02 16:04       snapshot-2006-02-02-16/

drwxr-xr-x  2 root root 4096 2006-01-27 00:00 weekly/

drwxr-xr-x  3 root root 4096 2006-02-02 20:06 yearly/

Wichtig: Die Archive unter monthly / yearly sollte man natürlich trotzdem auf CD / DVD sichern... !

Man startet das Skript am besten über crontab:
Code:
crontab -e

2 0,4,16,22 * * * /usr/local/sbin/snapshot >/dev/null


Das Skript mountet /backup nur zum Schreiben im Schreibmodus (rw), ansonsten ist es ebenfalls readonly (ro) gemountet.

Jetzt das Skript, ich hoffe es ist so verständlich und muss nicht weiter erklärt werden... (mal sehen...) Wink
Code:
#!/bin/sh
# mirror
# make a snapshot from directories
# an create hourly/daily/monthly/yearly archieves
# ---------
# neobiker (2006)
# originally based on mirror Version 3.11 By Stu Sheldon stu@actusa.net
# ...
# ...
# The directories are named 'snapshot-<year>-<month>-<day>-<hour>'
#
# Each time snapshot runs, it date stamps a file in the <snapshot> directory called
# 'lastrun.time'. This file's date when listing it using ls -laF shows the last
# date and time snapshot ran on that host.
#
# The last thing you need to do is add snapshot in your crontab with the proper
# times and switches.
#
# If you are going for hourly sync's, add the following to your crontab:
# 0 * * * *    /usr/local/sbin/snapshot
#
# Every four hours would be:
# 0 0,4,8,12,16,20  * * *    /usr/local/sbin/snapshot
#
# you get the idea
# ...

#########################################################################
# Start User Config Stuff

snapshot="server-data"

# This is the local root of the backup directories. (where to backup to)
backuproot=/backup

# You need to set the newdayhour to 00-23 depending on what hour you run
# the script in cron.
newdayhour=00

# number of snapshots to save
savehours=4
savedays=7
saveweeks=4
savemonths=12
saveyears=10

# list directories to backup
allsrcdir="
/home/
/srv/home/
/srv/daten/
/srv/daten/neobiker/
/var/lib/cyrus/
/var/ftp/
/var/log/
/var/spool/
/var/www/
"

# list directories to skip during in backup
# or leave blank
# EXCLUDES=""

EXCLUDES="--filter=. /tmp/excludes-${snapshot}"

cat > /tmp/excludes-${snapshot} << EOF
- /backup/
- /snapshot/
- /srv/daten/
- /var/spool/squid/
+ *
EOF


# Mount and Dismount commands for all reasons are in the following functions
# you can also mount windows-shares via smbclient e.g.
# here: mount for writing during backup, and mount readonly afterwards

mounting ()
{
    precom=0
    mount -o remount,rw ${backuproot} || mountfail
}

umounting ()
{
    postcom=0
    mount -o remount,ro ${backuproot} || umountfail
}

# Typical Unix saving localhost
rsync="rsync -a -R -q --delete"

  # Typical Unix using ssh and public keys
  # rsync="rsync -aR -q  --numeric-ids -e ssh --delete"
  # This has settings for windows and expects to use a mounted share.
  # rsync="rsync -a -R -q --delete --modify-window=10"

# End User Config Stuff
############################################################################
# Start Static Code

cmdline=$1
PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin

cmonth=`date +'%m'`
doweek=`date +'%w'`
cday=`date +'%d'`
chour=`date +'%H'`

yeardir=${backuproot}/${snapshot}/yearly
monthdir=${backuproot}/${snapshot}/monthly
weekdir=${backuproot}/${snapshot}/weekly
daydir=${backuproot}/${snapshot}/daily
hourdir=${backuproot}/${snapshot}/hourly

snapshotdir=`date +'snapshot-%Y-%m-%d-%H'`

lockfile=${backuproot}/${snapshot}/syncing-now

lsync=`/bin/ls -1r ${hourdir} | head -1`
lday=`date +'snapshot-%Y-%m-%d-%H' -d '1 day ago'`
lweek=`date +'snapshot-%Y-%m-%d-%H' -d '1 week ago'`

makedirs ()
{
    [ -d ${yeardir} ] || mkdir -p ${yeardir}
    [ -d ${monthdir} ] || mkdir -p ${monthdir}
    [ -d ${weekdir} ] || mkdir -p ${weekdir}
    [ -d ${daydir} ]  || mkdir -p ${daydir}
    [ -d ${hourdir} ] || mkdir -p ${hourdir}
}

dosync ()
{
    [ -d ${hourdir}/${snapshotdir} ] || mkdir -p ${hourdir}/${snapshotdir}
    [ -n "${lsync}" ] && rsync="${rsync} --link-dest=${hourdir}/${lsync}"

    for srcdir in ${allsrcdir}; do
      ${rsync} "${EXCLUDES}" ${srcdir} ${hourdir}/${snapshotdir}
    done
}

doyearly ()
{
    [ ${saveyears} -eq 0 ] && return
    if [ -d ${monthdir}/${snapshotdir} ]; then
      cp -alf  ${monthdir}/${snapshotdir} ${yeardir}
    else
      echo >&2 "I can't find snapshot ${monthdir}/${snapshotdir}..."
    fi
}

domonthly ()
{
    [ ${savemonths} -eq 0 ] && return
    if [ -d ${hourdir}/${snapshotdir} ]; then
      mv ${hourdir}/${snapshotdir} ${monthdir}
      ln -s ${monthdir}/${snapshotdir} ${hourdir}/${snapshotdir}
    else
      echo >&2 "I can't find snapshot ${hourdir}/${snapshotdir}..."
    fi
}

doweekly ()
{
    [ ${saveweeks} -eq 0 ] && return
    if [ -d ${daydir}/${lweek} ]; then
      mv ${daydir}/${lweek} ${weekdir}
    else
      echo >&2 "I can't find snapshot ${daydir}/${lweek}..."
    fi
}

dodaily ()
{
    [ ${savedays} -eq 0 ] && return
    if [ -d ${hourdir}/${lday} ]; then
      mv ${hourdir}/${lday} ${daydir}
    else
      echo >&2 "I can't find snapshot ${hourdir}/${lday}..."
    fi
}

docleanup ()
{
    [ ${savehours} -lt 1 ] && savehours=1
    count=0
    for i in `/bin/ls -r ${hourdir}`; do
      let count=count+1
      if [ ${count} -gt ${savehours} ]; then
        rm -Rf ${hourdir}/${i}
      fi
    done

    [ ${saveweeks} -gt 0 -a ${savedays} -lt 7 ] && savedays=7
    count=0
    for i in `/bin/ls -r ${daydir}`; do
      let count=count+1
      if [ ${count} -gt ${savedays} ]; then
        rm -Rf ${daydir}/${i}
      fi
    done

    count=0
    for i in `/bin/ls -r ${weekdir}`; do
      let count=count+1
      if [ ${count} -gt ${saveweeks} ]; then
        rm -Rf ${weekdir}/${i}
      fi
    done

    count=0
    for i in `/bin/ls -r ${monthdir}`; do
      let count=count+1
      if [ ${count} -gt ${savemonths} ]; then
        rm -Rf ${monthdir}/${i}
      fi
    done

    count=0
    for i in `/bin/ls -r ${yeardir}`; do
      let count=count+1
      if [ ${count} -gt ${saveyears} ]; then
        rm -Rf ${yeardir}/${i}
      fi
    done
}

inuse ()
{
  echo >&2 "I am already syncing snapshot ${snapshot}"
  exit 1
}

mountfail ()
{
  echo >&2 "I can't mount filesystem ${backuproot}"
  exit 1
}

umountfail ()
{
  echo >&2 "I can't unmount filesystem ${backuproot}"
  exit 1
}

####
#### Programm starts here ... ###########################
####

[ -f ${lockfile} ] && inuse
mounting
makedirs
touch ${lockfile}

case ${cmdline} in
  -y)
    doyearly
    docleanup
    ;;
  -m)
    domonthly
    docleanup
    ;;
  *)
    dosync
    if [ ${newdayhour} -eq ${chour} ]; then
      dodaily
      if [ ${doweek} -eq 0 ]; then
        doweekly
      fi
      if [ ${cday} -eq 1 ]; then
        domonthly
        if [ ${cmonth} -eq 1 ]; then
          doyearly
        fi
      fi
    fi
    docleanup
  ;;
esac

touch ${backuproot}/${snapshot}/lastrun.time
rm -f ${lockfile}
rm -f /tmp/excludes-${snapshot}

umounting
echo "Backup for ${snapshot} is complete..."

Hoffe, es sind keine Fehler mehr drin....
Edit: Habe im script 2-3 mini-Bugs behoben (betraf die Monats-/Jahresarchive)

So, ich hoffe bei Euch läuft's dann auch so gut wie bei mir (ich hab's bloss viel zu spät aufgesetzt...)

Good Luck - and alwas have the backup you need ... Cool

_________________
Gruss neobiker
Der Computer macht genau das, was Du ihm sagst - nicht das, was Du von ihm willst!

<- Wiki; Celsius M450 C2Duo/2.13GHz, 6GB, 3xSATA, RAID1 + Snapshot Backups, Samba, Fritzcard ISDN + mtG-Capri = LAN-Fax (PDF-Email), Anrufbeantworter (Wav-Email), Scalix / Webmail + Outlook, VDR 7, DSL-WLAN-Router (NAT / Firewall !) vor XEN-Endian Firewall (RED, ORANGE, GREEN), WLAN inkl. VPN (IPSEC, SSL), DMZ (Webmail Reverse Proxy)


Zuletzt bearbeitet von neobiker am 02 März 2006 17:37, insgesamt 8-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
tsp1311
Starter
Starter


Anmeldungsdatum: 20.11.2005
Beiträge: 9

BeitragVerfasst am: 03 Feb 2006 08:44    Titel: Antworten mit Zitat Nach oben Nach unten

Hi Neobiker,

habe mir mit rsync eine Lösung gebastelt.

Die beiden Links sollte man auch gesehen haben Smile
Für rsync meine absoluten TOP-Favoriten, vor allem kann man die Scripts fast 1:1 übernehmen.

http://applications.linux.com/applications/04/09/15/1931240.shtml?tid=13
http://servers.linux.com/servers/04/11/04/0346256.shtml?tid=119&tid=47

Gruß
Thomas

_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
roman
Power User
Power User


Anmeldungsdatum: 12.09.2005
Beiträge: 131

BeitragVerfasst am: 06 März 2006 18:15    Titel: Antworten mit Zitat Nach oben Nach unten

Hi zusammen,

bei mir funzt das nicht wenn ich
Code:
sh neu.sh
ausführe kommt bei mir.

Code:
debain:/home/roman# sh neu.sh
/bin/ls: /backup/server/hourly: Datei oder Verzeichnis nicht gefunden
mount: mount point /backup does not exist
I can't mount filesystem /backup


Mein Skript sieht so aus.

Code:

#!/bin/sh
# snapshot
# make a snapshot from directories
# an create hourly/daily/monthly/yearly archieves
# ---------
# neobiker (2006)
# originally based on mirror Version 3.11 By Stu Sheldon stu@actusa.net
# ...
# ...
# The directories are named 'snapshot-<year>-<month>-<day>-<hour>'
#
# Each time snapshot runs, it date stamps a file in the <snapshot> directory called
# 'lastrun.time'. This file's date when listing it using ls -laF shows the last
# date and time snapshot ran on that host.
#
# The last thing you need to do is add snapshot in your crontab with the proper
# times and switches.
#
# If you are going for hourly sync's, add the following to your crontab:
# 0 * * * *    /usr/local/sbin/snapshot
#
# Every four hours would be:
# 0 0,4,8,12,16,20  * * *    /usr/local/sbin/snapshot
#
# you get the idea
# ...

#########################################################################
# Start User Config Stuff

# This is the local root of the backup directories. (where to backup to)
backuproot=/backup

# directory, e.g. /backup/server
snapshot="server"

# You need to set the newdayhour to 00-23 depending on what hour you run
# the script in cron.
# make sure, that cronjob is started within newdayhour, e.g. 00:15
newdayhour=00

# number of snapshots to save
savehours=2
savedays=7
saveweeks=4
savemonths=12
saveyears=10

# list directories to backup
allsrcdir="
/
"

# list directories to skip during in backup
# or leave blank
# EXCLUDES=""

EXCLUDES="--filter=. /tmp/excludes-${snapshot}"

cat > /tmp/excludes-${snapshot} << EOF
- /backup/
- /snapshot/
- /srv/lost+found/
- /var/
+ *
EOF


# Mount and Dismount commands for all reasons are in the following functions
# you can also mount windows-shares via smbclient e.g.
# here: mount for writing during backup, and mount readonly afterwards

mounting ()
{
    precom=0
    mount -o remount,rw ${backuproot} || mountfail
}

umounting ()
{
    postcom=0
    mount -o remount,ro ${backuproot} || umountfail
}

# Typical Unix saving localhost
rsync="rsync -a -R -q --delete"

  # Typical Unix using ssh and public keys
  # rsync="rsync -aR -q  --numeric-ids -e ssh --delete"
  # This has settings for windows and expects to use a mounted share.
  # rsync="rsync -a -R -q --delete --modify-window=10"

# End User Config Stuff
############################################################################
# Start Static Code

cmdline=$1
PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin

cmonth=`date +'%m'`
doweek=`date +'%w'`
cday=`date +'%d'`
chour=`date +'%H'`

yeardir=${backuproot}/${snapshot}/yearly
monthdir=${backuproot}/${snapshot}/monthly
weekdir=${backuproot}/${snapshot}/weekly
daydir=${backuproot}/${snapshot}/daily
hourdir=${backuproot}/${snapshot}/hourly

snapshotdir=`date +'snapshot-%Y-%m-%d-%H'`

lockfile=${backuproot}/${snapshot}/syncing-now

lsync=`/bin/ls -1r ${hourdir} | head -1`
lday=`date +'snapshot-%Y-%m-%d-%H' -d '1 day ago'`
lweek=`date +'snapshot-%Y-%m-%d-%H' -d '1 week ago'`

makedirs ()
{
    [ -d ${yeardir} ] || mkdir -p ${yeardir}
    [ -d ${monthdir} ] || mkdir -p ${monthdir}
    [ -d ${weekdir} ] || mkdir -p ${weekdir}
    [ -d ${daydir} ]  || mkdir -p ${daydir}
    [ -d ${hourdir} ] || mkdir -p ${hourdir}
}

dosync ()
{
    [ -d ${hourdir}/${snapshotdir} ] || mkdir -p ${hourdir}/${snapshotdir}
    [ -n "${lsync}" ] && rsync="${rsync} --link-dest=${hourdir}/${lsync}"

    for srcdir in ${allsrcdir}; do
      ${rsync} "${EXCLUDES}" ${srcdir} ${hourdir}/${snapshotdir}
    done
}

doyearly ()
{
    [ ${saveyears} -eq 0 ] && return
    if [ -d ${monthdir}/${snapshotdir} ]; then
      cp -alf  ${monthdir}/${snapshotdir} ${yeardir}
    else
      echo >&2 "I can't find snapshot ${monthdir}/${snapshotdir}..."
    fi
}

domonthly ()
{
    [ ${savemonths} -eq 0 ] && return
    if [ -d ${hourdir}/${snapshotdir} ]; then
      mv ${hourdir}/${snapshotdir} ${monthdir}
      ln -s ${monthdir}/${snapshotdir} ${hourdir}/${snapshotdir}
    else
      echo >&2 "I can't find snapshot ${hourdir}/${snapshotdir}..."
    fi
}

doweekly ()
{
    [ ${saveweeks} -eq 0 ] && return
    if [ -d ${daydir}/${lweek} ]; then
      mv ${daydir}/${lweek} ${weekdir}
    else
      echo >&2 "I can't find snapshot ${daydir}/${lweek}..."
    fi
}

dodaily ()
{
    [ ${savedays} -eq 0 ] && return
    if [ -d ${hourdir}/${lday} ]; then
      mv ${hourdir}/${lday} ${daydir}
    else
      echo >&2 "I can't find snapshot ${hourdir}/${lday}..."
    fi
}

docleanup ()
{
    [ ${savehours} -lt 1 ] && savehours=1
    count=0
    for i in `/bin/ls -r ${hourdir}`; do
      let count=count+1
      if [ ${count} -gt ${savehours} ]; then
        rm -Rf ${hourdir}/${i}
      fi
    done

    [ ${saveweeks} -gt 0 -a ${savedays} -lt 7 ] && savedays=7
    count=0
    for i in `/bin/ls -r ${daydir}`; do
      let count=count+1
      if [ ${count} -gt ${savedays} ]; then
        rm -Rf ${daydir}/${i}
      fi
    done

    count=0
    for i in `/bin/ls -r ${weekdir}`; do
      let count=count+1
      if [ ${count} -gt ${saveweeks} ]; then
        rm -Rf ${weekdir}/${i}
      fi
    done

    count=0
    for i in `/bin/ls -r ${monthdir}`; do
      let count=count+1
      if [ ${count} -gt ${savemonths} ]; then
        rm -Rf ${monthdir}/${i}
      fi
    done

    count=0
    for i in `/bin/ls -r ${yeardir}`; do
      let count=count+1
      if [ ${count} -gt ${saveyears} ]; then
        rm -Rf ${yeardir}/${i}
      fi
    done
}

inuse ()
{
  echo >&2 "I am already syncing snapshot ${snapshot}"
  exit 1
}

mountfail ()
{
  echo >&2 "I can't mount filesystem ${backuproot}"
  exit 1
}

umountfail ()
{
  echo >&2 "I can't unmount filesystem ${backuproot}"
  exit 1
}

####
#### Programm starts here ... ###########################
####

[ -f ${lockfile} ] && inuse
mounting
makedirs
touch ${lockfile}

case ${cmdline} in
  -y)
    doyearly
    docleanup
    ;;
  -m)
    domonthly
    docleanup
    ;;
  *)
    dosync
    if [ ${newdayhour} -eq ${chour} ]; then
      dodaily
      if [ ${doweek} -eq 0 ]; then
        doweekly
      fi
      if [ ${cday} -eq 01 ]; then
        domonthly
        if [ ${cmonth} -eq 01 ]; then
          doyearly
        fi
      fi
    fi
    docleanup
  ;;
esac

touch ${backuproot}/${snapshot}/lastrun.time
rm -f ${lockfile}
rm -f /tmp/excludes-${snapshot}

umounting
echo "Backup for ${snapshot} is complete..."



Danke für die Hilfe Very Happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
neobiker
Moderator
Moderator


Anmeldungsdatum: 11.08.2005
Beiträge: 1076
Wohnort: Nürnberg / Umgebung

BeitragVerfasst am: 06 März 2006 20:46    Titel: Antworten mit Zitat Nach oben Nach unten

Also, ich weiss jetzt nicht wirklich, ob ich helfen soll... Question

Sollen wir Dein ganzes Script lesen, und Du liest nicht mal hier diesen thread, ganz zu schweigen von den eigenen Fehlermeldungen (die sagen eigentlich schon alles) Question

Dafür hab ich keine Zeit übrig, sorry Confused

_________________
Gruss neobiker
Der Computer macht genau das, was Du ihm sagst - nicht das, was Du von ihm willst!

<- Wiki; Celsius M450 C2Duo/2.13GHz, 6GB, 3xSATA, RAID1 + Snapshot Backups, Samba, Fritzcard ISDN + mtG-Capri = LAN-Fax (PDF-Email), Anrufbeantworter (Wav-Email), Scalix / Webmail + Outlook, VDR 7, DSL-WLAN-Router (NAT / Firewall !) vor XEN-Endian Firewall (RED, ORANGE, GREEN), WLAN inkl. VPN (IPSEC, SSL), DMZ (Webmail Reverse Proxy)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
roman
Power User
Power User


Anmeldungsdatum: 12.09.2005
Beiträge: 131

BeitragVerfasst am: 06 März 2006 20:49    Titel: Antworten mit Zitat Nach oben Nach unten

Natürlich hab ich diesen Thread gelesen. Ich hab nur nicht kappiert wo ich überall das Skript auf mich umschreiben muss. Ich hab mein Skript soweit abgeändert wie ich´s verstanden hab Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
neobiker
Moderator
Moderator


Anmeldungsdatum: 11.08.2005
Beiträge: 1076
Wohnort: Nürnberg / Umgebung

BeitragVerfasst am: 06 März 2006 20:54    Titel: Antworten mit Zitat Nach oben Nach unten

... bin mal gnädig und helfe Dir auf die Sprünge:

In meinem Howto steht riesengross am Anfang, dass eine eigene Platte /dev/sdc1 bei mir nach /backup gemountet wird ... klingelt's Question

_________________
Gruss neobiker
Der Computer macht genau das, was Du ihm sagst - nicht das, was Du von ihm willst!

<- Wiki; Celsius M450 C2Duo/2.13GHz, 6GB, 3xSATA, RAID1 + Snapshot Backups, Samba, Fritzcard ISDN + mtG-Capri = LAN-Fax (PDF-Email), Anrufbeantworter (Wav-Email), Scalix / Webmail + Outlook, VDR 7, DSL-WLAN-Router (NAT / Firewall !) vor XEN-Endian Firewall (RED, ORANGE, GREEN), WLAN inkl. VPN (IPSEC, SSL), DMZ (Webmail Reverse Proxy)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
roman
Power User
Power User


Anmeldungsdatum: 12.09.2005
Beiträge: 131

BeitragVerfasst am: 08 März 2006 14:47    Titel: Antworten mit Zitat Nach oben Nach unten

Hi zusammen,

ich hab jetzt das Problem wenn ich eine frisch mit ex3 formatierte Festplatte an den Server anschließe erhalte die Meldung.
(Nach dem Grub gestart ist)

Code:

Booting Debian GNU/Linux, Kernel 2.6.12-ct-1
root (hd0,0)
Filesystem type unknown, partition type 0xf
kernel /boot/vmlinuz-2.6.12-ct-1 root=dev/hda1 ro

Error 17: Cannot mount selected partition.

Press any key.


Wenn ich eine Taste drücke gelang ich wieder zum Grub.

Kann mir jemadn sagen was das Bedeutet Laughing
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
flensdorfer
Silver User
Silver User


Anmeldungsdatum: 10.10.2005
Beiträge: 479

BeitragVerfasst am: 08 März 2006 15:51    Titel: Antworten mit Zitat Nach oben Nach unten

Tach Roman!

1. ist es sicher besser einen neuen Thread aufmachen und dort dein grub-Problem posten, statt diesen hier zu "hijacken"
2. möchtest Du dich sicher erstmal mit den Debian-Grundlagen vertraut machen
http://debiananwenderhandbuch.de/index.html
3. kann googlen nicht schaden
4. kann man ruhig auch mehr Infos posten, wie z.B. configs

Mal ein bischen Eigeninitiative zeigen und versuchen Probleme selbst zu lösen - hier im Forum wird Dir sicher niemand alles in kleinen Happen mundgerecht vorsetzen... ich zumindest nicht.

Aber auch hier gnädigerweise ein Tipp:
Grub möchte den Kernel von hda1 starten, dort findet er aber nichts, was er booten könnte...
Zitat:
wenn ich eine frisch mit ex3 formatierte Festplatte an den Server anschließe

könnte eventuell damit zusammenhängen... Not talking

_________________

* c't-Server3, Leistungsaufnahme <50W: AMD Athlon64 X2 4850e, 2GB DDR2, Biostar A740G M2+, Enermax PRO82+, Sharkoon Rebel9 Economy Edition, 1x Fujitsu MHZ2160BH 160 GB 2.5" IDE, RAID5 (1xSamsung HD103UI 1TB F1 EcoGreen, 2x WD 10EADS 1TB Green), LianLi EX-H33, Intel Pro100 PCI, Intel Pro1000 PCIe, Fritz!Card PCI
mit c't-Server3.01 und Waldi 2.6.18-xen-3.3
* mittlerweile auf dem Altenteil: Primergy470, Dual P2-350, 1GB, 55GB UW-SCSI (4 drives) mit c't-Server2
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
roman
Power User
Power User


Anmeldungsdatum: 12.09.2005
Beiträge: 131

BeitragVerfasst am: 08 März 2006 16:16    Titel: Antworten mit Zitat Nach oben Nach unten

Mir ist schon bewust das ich ihr nicht die ganze Arbeit von mir macht Wink

Hab ich auch nicht verlangt.

Aber warum sollte ich nicht mein Problem nicht posten wenn jemand zufällig weis was man bei diesem Problem machen muss kann er mir doch helfen. Dafür ist das Forum doch da oder darf ich nur bestimmte Probleme posten Question

Wenn ich die Platte nicht anschließe funktioniert ja alles und er soll ja nicht von dieser Platte booten sondern von der Standardplatte.

MFG Roman
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
KlausHeinisch
Golden User
Golden User


Anmeldungsdatum: 04.02.2006
Beiträge: 592
Wohnort: Hannover

BeitragVerfasst am: 08 März 2006 18:34    Titel: Knoppix hilft hier fast immer: Antworten mit Zitat Nach oben Nach unten

Hi Roman.

Wissen wir, dass du weißt, dass wir nicht wollen, dass wir deine Arbeit machen.
Darum geht es aber nicht...

Du musst schlicht noch mehr Fakten liefern, denn da wir dich nicht wie in
anderen Supportfällen (im Job oder bei engeren Freunden) am Telefon
haben, können wir nur auf die Fakten Tips geben, die du gepostet hast.

Und das reicht schlicht nicht aus, meint der Flensdorfer ohne CAPS-Taste Wink
und meine auch ich.

Also: Knoppix 4.0 reinschmeißen (oder vorher saugen und brennen),
Server von Knoppix booten, die Platten inspizieren und hier posten,
welche Platte welche ist, wie sie formatiert sind, ob du ggf. Kabel
vertauscht hast und hda nun nicht mehr deine Standardplatte, sondern
die neue und die eigentliche hda nun z.B. hdc ist etc.

Solche Fakten, Informationen, die wir -stell dir einfach vor, welche Fragen
wir dir stellen würden, wenn wir dich am Telefon hätten- zur
Problemanalyse brauchen, musst du und kannst du selbst analysieren und
hier posten, dann wissen wir und sehen es, dass du dich reinkniest.

Viel Erfolg beim Analysieren mit Knoppix Very Happy

----
Gruß, Klaus

_________________
Gruß, Klaus Wink
__________________________________________________________

Mein "RechenZentrum":
  • 1 Debian-Lenny mit ct-Server-3-Implantaten,
  • 1 MythTV-0.20-Backend und
  • 1 FritzBox, div. Clients
Die Systeme:
Server-3: Debian-LENNY als Dom-0, AMD-Athlon 64 X2 4850e, noch ohne CnQ,
Webserver, Virtual-Desktops und Infrastruktur-DomUs in Produktion (stabil),
4 * Endian-2.2 als BackEnd-Firewall (stabil) für Web, RAS, DMZ-FE & DMZ-BE
FritzBox: FrontEnd-Firewall und TCP-Port-Verteiler mit VoIP-Telefonie
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
roman
Power User
Power User


Anmeldungsdatum: 12.09.2005
Beiträge: 131

BeitragVerfasst am: 09 März 2006 22:11    Titel: Antworten mit Zitat Nach oben Nach unten

Hi Merci schonmal für deine Antwort,

also ich hab mir das neue Knoppix gezogen und hab herausgefunden das die neue Festplatte die Hdc1 ist und die alte Festplatte nach wie vor Hda1 usw.
auserdem ist die Platte in ext3 Formatiert.
Daher das ich in Linux und Knoppix ein Neuling bin kenne ich halt keine Programme z.b unter Knoppix womit ich meine Platte und so weiter Checken könnte ich kann mir auch nicht genau vorstellen welcher Fragen ihr mir alles stellen würdet Very Happy

Naja falls jemad ein Programm oder was einfällt kann ers mir schreiben ich versuchs mal weiter.

MFG Roman
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
roman
Power User
Power User


Anmeldungsdatum: 12.09.2005
Beiträge: 131

BeitragVerfasst am: 10 März 2006 19:59    Titel: Antworten mit Zitat Nach oben Nach unten

Hi zusammen,

es lag an sowas echt blödes Very Happy
Mein Server hat ein etwas älteres Bios obwohl die andere Platte nicht angeschlossen war wollte er die falsche Platte zum Booten benützten somit hat er immer versucht von der falschen Platte zu booten Smile

Naja jetzt hat er die Platte erkannt ich hoff jetzt bekomm ich das Skript hin.

Merci aufjedenfall mal für eure Hilfe Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
KlausHeinisch
Golden User
Golden User


Anmeldungsdatum: 04.02.2006
Beiträge: 592
Wohnort: Hannover

BeitragVerfasst am: 11 März 2006 21:41    Titel: Durchbeissen... && Ausführung als USER Antworten mit Zitat Nach oben Nach unten

Hi Roman, hi neobiker

(@ Roman)
Applause

Herzlichen Glückwunsch.

Manchmal hilft wirklich nur, dass man sich durchbeißen muss.

Die Lernkurve bei Linux ist am Anfang relativ flach, d.h. du
denkst oft, "mann, bin ich blöd; warum funktioniert denn der Mist nicht;
oh nee, ist das umständlich" usw.

Darum ist das "Selberdurchbeissen" immer wichtig und nötig, um sich die
grundlegenden Dinge und auch die eigentlichen Problemdetails anzueignen
bzw. herauszufinden. Und das hat ja bei dir gut geklappt. Soll heißen, du
hast dich selbst schlau gemacht und abgerafft, wo die Probleme lagen.
Das ist sowohl für deine weitere Persönlichkeitsentwicklung wichtig Laughing als
auch für deine weiteren Erfolge mit Linux.

Und unsereiner, der ja gerne helfen will, braucht eben auch genau dieses
Gefühl, dass der Fragesteller bereit ist, sich selbst reinzuknieen.
Ohne das geht es nicht, das kommt ja in vielen Postings im Forum zum
Ausdruck...

----
Gruß, Klaus

----
PS: Bin selbst auch gerade dabei, das Script zum Fliegen zu bekommen Wink

2.PS: (@ neobiker)
Ich hab's dann erfolgreich zum Fliegen bekommen.
Super Methode, fast genial. Vor allem der Ansatz, mit Hardlinks zu
arbeiten, gefällt mir ausgezeichnet. Denn so hat man in jedem Folder
automatisch alle Dateien liegen.
Natürlich darf man sich nicht von den jeweiligen Verzeichnisgrößen irritieren
lassen, die jeweils in Summe viel größer sind als der insgesamt verbrauchte
Platz.

Wenige Anmerkungen:

  1. "crontab -e" muss als ROOT aufgerufen werden, soll heißen:
    Man muss die Crontab des Systems bearbeiten, was man mit dem o.g.
    Kommando als ROOT auch tut.

  2. Wenn man dasselbe als User macht, hat man -gut, das ist ja logisch-
    keine Root-Rechte und die Aktion bzw. das Snapshot-Backup scheitert.
    Um nur usereigene Backups zu machen, sollte das Script auch
    funktionieren, vorausgesetzt man hat a) ein anderes Backupverzeichnis
    verwendet, das entweder usermountable ist oder permanent writable,
    weil b) man als User die Passage im Hauptscript
    Code:

    ####
    #### Programm starts here ... ##################
    ####
    [ -f ${lockfile} ] && inuse
    # Als User darf man nicht mounten
    # mounting
    makedirs
    (...Hauptteil des Hauptprogramms...)
    # Als User darf man nicht mounten
    # umounting
    echo "Backup for ${snapshot} is complete..."

    modifiziert hat.

  3. Ich habe bei mir alle Aufrufe von Systemprogrammen mit absoluten
    Pfaden
    versehen. Dann kann auch für User-Backups nichts mehr
    schief gehen und man ist auch als root auf der sicheren Seite, falls
    irgendwo mal was mit den Umgebungsvariablen nicht stimmt.
    Und wenn man schon Backups macht, will man ja sicher sein Wink

  4. Was ich -vielleicht bin ich ja blind Brick wall- nirgendwo gefunden habe, ist die
    wichtigste Info überhaupt:
    In jedem Snapshot-Verzeichnis liegt jeweils der letzte Stand
    der Originaldaten vollständig drin. Das wird erreicht durch die
    Verwendung von Hardlinks, die einfach nur mehrfache
    Verzeichniseinträge für ein und dieselbe Datei sind. So erreicht
    rsync, dass immer "alles" gesichert werden kann, aber nur die
    Dateien neu kopiert werden, die auch wirlich nicht mehr identisch
    mit den alten sind.
    Darum kann man jederzeit von jedem Snapshot eine Sicherung
    ziehen und auf Tape oder (relativ unsicher) DVD/CD ablegen.



FAZIT (again: Wink )
SUPER SUPER SUPER

Habe jahrelang nach einer solchen Lösung gesucht und werde sie
neben den üblichen, nervigen, (teuren) komerziellen Lösungen
(nur wenige gute wie Networker (Legato) oder TSM (IBM))
auch in der 4ma einsetzen...

Dancing

Elf

----
V2: PS
V3: 2. PS

_________________
Gruß, Klaus Wink
__________________________________________________________

Mein "RechenZentrum":
  • 1 Debian-Lenny mit ct-Server-3-Implantaten,
  • 1 MythTV-0.20-Backend und
  • 1 FritzBox, div. Clients
Die Systeme:
Server-3: Debian-LENNY als Dom-0, AMD-Athlon 64 X2 4850e, noch ohne CnQ,
Webserver, Virtual-Desktops und Infrastruktur-DomUs in Produktion (stabil),
4 * Endian-2.2 als BackEnd-Firewall (stabil) für Web, RAS, DMZ-FE & DMZ-BE
FritzBox: FrontEnd-Firewall und TCP-Port-Verteiler mit VoIP-Telefonie
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
roman
Power User
Power User


Anmeldungsdatum: 12.09.2005
Beiträge: 131

BeitragVerfasst am: 12 März 2006 14:59    Titel: Antworten mit Zitat Nach oben Nach unten

Hi danke für deine Antwort Very Happy

Also ich hab mich da jetzt mal weiter durchgebissen.
Wenn ich jetzt aber das Skript von neobiker genauso übernehme kommt bei mir dieser Fehler.

Code:

server:/home/roman/skripte# sh backupskript1.sh
backupskript1.sh: line 138: rsync: command not found
backupskript1.sh: line 138: rsync: command not found
backupskript1.sh: line 138: rsync: command not found
backupskript1.sh: line 138: rsync: command not found
backupskript1.sh: line 138: rsync: command not found
Backup for server is complete...
server:/home/roman/skripte#


es muss Aufjedenfall was mit den Ordnern zu tun haben die gesichert werden sollen.
Wenn ich nämlich keine Ordner sicher kommt nur.
Code:

server:/home/roman/skripte# sh backupskript1.sh
Backup for server is complete...
server:/home/roman/skripte#


Und wenn ich nur einen Ordner sichern möchte dann

Code:

server:/home/roman/skripte# sh backupskript1.sh
backupskript1.sh: line 138: rsync: command not found
Backup for server is complete...
server:/home/roman/skripte#


Kann das mit den Zeilenumbrüchen bei Windows zutun haben das die anderst sind wie bei Linux.

Habt ihr ne Idee Very Happy
MFG Roman
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
flensdorfer
Silver User
Silver User


Anmeldungsdatum: 10.10.2005
Beiträge: 479

BeitragVerfasst am: 12 März 2006 16:25    Titel: Antworten mit Zitat Nach oben Nach unten

Code:
backupskript1.sh: line 138: rsync: command not found


mal zum nachdenken: was könnte "command not found" wohl heißen? Wink
Code:
apt-get install rsync

_________________

* c't-Server3, Leistungsaufnahme <50W: AMD Athlon64 X2 4850e, 2GB DDR2, Biostar A740G M2+, Enermax PRO82+, Sharkoon Rebel9 Economy Edition, 1x Fujitsu MHZ2160BH 160 GB 2.5" IDE, RAID5 (1xSamsung HD103UI 1TB F1 EcoGreen, 2x WD 10EADS 1TB Green), LianLi EX-H33, Intel Pro100 PCI, Intel Pro1000 PCIe, Fritz!Card PCI
mit c't-Server3.01 und Waldi 2.6.18-xen-3.3
* mittlerweile auf dem Altenteil: Primergy470, Dual P2-350, 1GB, 55GB UW-SCSI (4 drives) mit c't-Server2
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    ctserver.org Foren-Übersicht -> HOWTOs Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2, 3  Weiter
Seite 1 von 3

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen

Ähnliche Beiträge
Thema Autor Forum Antworten Verfasst am
Keine neuen Beiträge XM Save und inkonsistente Backups advocate Xen 4 24 Aug 2009 09:59 Letzten Beitrag anzeigen
Keine neuen Beiträge Halbes HowTo Powernow in Waldi / Xen ... Carsten miniHOWTOs 40 06 März 2009 15:01 Letzten Beitrag anzeigen
Keine neuen Beiträge HowTo: DomU Konsolen in virtuellen Ko... neobiker HOWTOs 0 02 Dez 2007 21:00 Letzten Beitrag anzeigen
Keine neuen Beiträge [HowTo] Kernel backen moleman HOWTOs 0 03 Sep 2007 22:10 Letzten Beitrag anzeigen
Keine neuen Beiträge Scalix Link aus dem Howto down........ lintrader HOWTOs 2 21 Aug 2007 05:16 Letzten Beitrag anzeigen


Powered by phpBB © 2001, 2005 phpBB Group.