webdavs-Syncronisation wird nicht aufgeräumt

Probleme mit Samba, NFS, FTP und Co.
Antworten
letzter3
Beiträge: 443
Registriert: 16.07.2011 22:07:31

webdavs-Syncronisation wird nicht aufgeräumt

Beitrag von letzter3 » 13.10.2014 22:54:05

Hallo,
Ich verwende mysqlbackup und rsync, um backups per webdavs nach freedrive zu sichern

Das webdavs-Laufwerk einhängen

Code: Alles auswählen

root@ptLWL01:/etc/automysqlbackup# cat mysql-backup-pre
#!/bin/sh
[ -z "$(mount | grep /mnt/webdav)" ] && echo "USER\nPASSWORT"|mount -t davfs https://USER.webdav.hidrive.strato.com /mnt/webdav.USER root@ptLWL01:/etc/automysqlbackup# 
jetzt arbeitet automysqlbackup....
...
...
und arbeitet...
...

Das eingehängte webdavs-Laufwerk mit dem lokalen /home/backup syncen und aushängen

Code: Alles auswählen

root@ptLWL01:/etc/automysqlbackup# cat mysql-backup-post
#!/bin/sh
#[ -z "$(mount | grep /mnt/webdav)" ] echo "USER\nPASSWORT"|mount -t davfs https://USER.webdav.hidrive.strato.com /mnt/webdav.USER
rsync --delete --size-only -ar /home/backup/ /mnt/webdav.USER/users/USER/backup && umount /mnt/webdav.USERroot@ptLWL01:/etc/automysqlbackup# 
Nun wird aber unter

Code: Alles auswählen

root@ptLWL01:/var/cache/davfs2# ls
USER.webdav.hidrive.strato.com+mnt-webdav.USER+root 
root@ptLWL01:/var/cache/davfs2#
angelegt und darin alle gesicherten Datenbanken in Kopie behalten.
Das sieht dann ungefähr so aus (die passen jetzt gerade nicht zueinander), nur mit ganz vielen Datenbanken seit 2011, also rund 2 x 365 x (2014-2011)=3.285 Dateien x 250 MB = 800 GB:

Code: Alles auswählen

root@ptLWL01:/var/cache/davfs2/USER.webdav.hidrive.strato.com+mnt-webdav.USER+root# ls -a
index 
.monthly_ptlwl_2014-09-30_00h38m_September.sql.bz2.MyPDRH-lxndBA 
.status_daily_2014-03-31_00h55m_Monday.txt.bz2.dex4Tg-Qkv2kh
root@ptLWL01:/var/cache/davfs2/USER.webdav.hidrive.strato.com+mnt-webdav.USER+root# 
Wobei die eigentlich zu sichernde Datei auf bz2 endet, also ohne das "MyPDRH-lxndBA"

Leider läuft dann irgendwann die Platte voll und ein weiteres syncen ist nicht mehr möglich

Code: Alles auswählen

root@ptLWL01:/etc/automysqlbackup# ./mysql-backup-post
rsync: writefd_unbuffered failed to write 4 bytes to socket [sender]: Broken pipe (32)
rsync: write failed on "/mnt/webdav.USER/users/USER/backup/daily/ptlwl/daily_ptlwl_2014-10-13_00h40m_Monday.sql.bz2": No space left on device (28)
rsync error: error in file IO (code 11) at receiver.c(322) [receiver=3.0.9]
rsync: connection unexpectedly closed (55 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(605) [sender=3.0.9]
Wie kann ich das "Behalten" der versteckten Kopien unterbinden?

p.s.: USER und PASSWORT oben sind als Ersatz für die korrekten Anmeldedaten.
Zuletzt geändert von letzter3 am 14.10.2014 08:50:00, insgesamt 1-mal geändert.

Benutzeravatar
The Hit-Man
Beiträge: 2170
Registriert: 21.11.2004 17:01:56
Wohnort: Menden ( Sauerland )
Kontaktdaten:

Re: webdavs-Syncronisation wird nicht aufgeräumt

Beitrag von The Hit-Man » 14.10.2014 03:43:34

wenns um syncen geht, schau dir 'unison' an ...
ich selbst habe mir kleine scripte geschrieben um einge dateien auf meinen rechnern synchron zu halten.
Wer HTML postet oder gepostetes HTML quotet oder sich gepostetes oder
gequotetes HTML beschafft, um es in Verkehr zu bringen, wird geplonkt.

damals windows, früher ubuntu, danach debian, heute arch-linux ;)

letzter3
Beiträge: 443
Registriert: 16.07.2011 22:07:31

Re: webdavs-Syncronisation wird nicht aufgeräumt

Beitrag von letzter3 » 14.10.2014 08:54:12

Das wäre sicherlich etwas Overkill und ich befürchte, dass es das Problem nicht löst.
Der Zugriff auf das HiDrive-Laufwerk ist nur mit webdav(s) möglich, und für das nachgelagerte syncen sollte rsync ja prädestiniert sein.
Ich glaube(!), dass es auch nicht rsync ist, das die Probleme verursacht, sondern webdav(s).

Michael

Benutzeravatar
The Hit-Man
Beiträge: 2170
Registriert: 21.11.2004 17:01:56
Wohnort: Menden ( Sauerland )
Kontaktdaten:

Re: webdavs-Syncronisation wird nicht aufgeräumt

Beitrag von The Hit-Man » 14.10.2014 10:04:08

Das wäre sicherlich etwas Overkill und ich befürchte, dass es das Problem nicht löst.
neeeeeee. overkill wäre dropbox oder oder andere sync-dienste ... mit unsion bestimmt du selber.

muß aber dabei sagen, webdav habe ich nie benutzt
Wer HTML postet oder gepostetes HTML quotet oder sich gepostetes oder
gequotetes HTML beschafft, um es in Verkehr zu bringen, wird geplonkt.

damals windows, früher ubuntu, danach debian, heute arch-linux ;)

letzter3
Beiträge: 443
Registriert: 16.07.2011 22:07:31

Re: webdavs-Syncronisation wird nicht aufgeräumt

Beitrag von letzter3 » 14.10.2014 16:24:28

Wie gesagt, unison wird mir voraussichtlich nicht helfen und ich hätte das eigentliche Problem gerne behoben.

Michael

letzter3
Beiträge: 443
Registriert: 16.07.2011 22:07:31

Re: webdavs-Syncronisation wird nicht aufgeräumt

Beitrag von letzter3 » 16.10.2014 09:26:27

Während beim Mount-Befehl ja das -t davfs drinne ist, gibt es beim umount diese spezielle Option nicht. Dafür gibt's es umount.davfs.
Leider hat das auch keine Auswirkungen, es wird nach wie vor in /var/Cache/davfs2 gespeichert.

Geht das eigentlich nur mir so?

Benutzeravatar
The Hit-Man
Beiträge: 2170
Registriert: 21.11.2004 17:01:56
Wohnort: Menden ( Sauerland )
Kontaktdaten:

Re: webdavs-Syncronisation wird nicht aufgeräumt

Beitrag von The Hit-Man » 17.10.2014 01:32:37

ich verstehe das prblem noch immer nicht.
-t beim mount gibt doch nur an welches system gemoutet werden soll.
Wer HTML postet oder gepostetes HTML quotet oder sich gepostetes oder
gequotetes HTML beschafft, um es in Verkehr zu bringen, wird geplonkt.

damals windows, früher ubuntu, danach debian, heute arch-linux ;)

fbartels
Beiträge: 326
Registriert: 20.08.2009 10:06:56
Kontaktdaten:

Re: webdavs-Syncronisation wird nicht aufgeräumt

Beitrag von fbartels » 17.10.2014 07:26:58

Unter /var/cache/davfs2 befindet sich der lokale Cache von davfs. Normalerweise hat dieser eine Maximalgröße von 50MB (konfigurierbar in davfs2.conf).

Der folgende Thread gibt einige Punkte und Hinweise woran es liegen kann, wenn diese 50MB dauerhaft überschritten werden: http://sourceforge.net/p/dav/discussion ... /a5518230/

letzter3
Beiträge: 443
Registriert: 16.07.2011 22:07:31

Re: webdavs-Syncronisation wird nicht aufgeräumt

Beitrag von letzter3 » 17.10.2014 10:50:29

The Hit-Man hat geschrieben:ich verstehe das prblem noch immer nicht.
Das Problem ist, dass der davfs-cache auf der lokalen Platte nicht geleert wird.
1. Es wird ein rollierendes backup einer Datenbank erstellt nach /home/backup
2. Es wird ein externes webdav-Verzeichnis eingebunden nach /mnt/webdav.USER/users/USER/backup
3. Dateien aus 1 werden mittels rsync nach 2 gesynct.
4. irgendwo hierzwischen werden die Dateien von davfs gecachet.
5. /mnt/webdav.USER/users/USER/backup wird wieder ausgehangen
6. die gecachten Dateien werden nicht gelöscht.

Da es sich um ein rollierendes backup handelt, kommen unter /home/backup jeden Tag 2 Dateien mit insgesamt 600 MB dazu, wofür 2 alte gelöscht werden (vereinfacht gesagt).
Im webdav-cache wird aber nix gelöscht (auch nicht die alten, die unter /home/backup schon wieder verschwunden sind), also wächst der webdav-cache jeden Tag um 600 MB.

The Hit-Man hat geschrieben:-t beim mount gibt doch nur an welches system gemoutet werden soll.
mount -t davfs = mount.davfs
umount ! = umount.davfs
man umount.davfs hat geschrieben:umount.davfs is a umount helper program. It is called by the umount(8) command. Its purpose is to prevent the umount command from returning unless mount.davfs has synchronized all its cached files with the webdav server.

letzter3
Beiträge: 443
Registriert: 16.07.2011 22:07:31

Re: webdavs-Syncronisation wird nicht aufgeräumt

Beitrag von letzter3 » 17.10.2014 11:23:44

fbartels hat geschrieben:Unter /var/cache/davfs2 befindet sich der lokale Cache von davfs. Normalerweise hat dieser eine Maximalgröße von 50MB (konfigurierbar in davfs2.conf).
Genau. Die davfs2.conf ist im Originalzustand und die 50 MB sind der Default.
fbartels hat geschrieben:Der folgende Thread gibt einige Punkte und Hinweise woran es liegen kann, wenn diese 50MB dauerhaft überschritten werden: http://sourceforge.net/p/dav/discussion ... /a5518230/
Vielen Dank für den Link!
Ich meine, dort 2 Möglichkeiten rausgelesen zu haben, die mein Fall sein könnten.

1. http://sourceforge.net/p/dav/discussion ... #15ff/f4de
- when davfs2 checked for orphaned files in the cache, it missed some of the existing file nodes. Because of this it classified some cache files as orphaned that belonged to existing file nodes.
Ich bin mir aber nicht ganz sicher, was in diesem Zusammenhang mit orphaned gemeint ist. In meinem Fall ist es ja so, dass die Originaldaten (veraltetes backup-File) gelöscht werden. Kann sich webdafs hieran verschlucken?

2. http://sourceforge.net/p/dav/discussion ... #15ff/5a5f
When unmounting: if you want to make sure that the cache is resized before unmounting, you should wait for delay_upload seconds, to give davfs2 a chance.
bei mir wird ja das Verzeichnis sofort ausgehangen.
Wie kann ich hier:

Code: Alles auswählen

rsync --delete --size-only -ar /home/backup/ /mnt/webdav.USER/users/USER/backup && umount.davfs /mnt/webdav.USER

eine Pause einbauen?
Eigentlich hatte ich ich gehofft, genau das mittels umount.davfs zu erreichen....

Funktioniert sowas?

Code: Alles auswählen

rsync --delete --size-only -ar /home/backup/ /mnt/webdav.USER/users/USER/backup && sleep 50 && umount.davfs /mnt/webdav.USER

Benutzeravatar
habakug
Moderator
Beiträge: 4313
Registriert: 23.10.2004 13:08:41
Lizenz eigener Beiträge: MIT Lizenz

Re: webdavs-Syncronisation wird nicht aufgeräumt

Beitrag von habakug » 17.10.2014 11:24:20

Hallo!

Vielleicht postest du mal den Inhalt der Dateien,

Code: Alles auswählen

# cat /etc/davfs2/davfs2.conf
# cat /root/.davfs2/davfs2.conf
dann versteht man es besser.
Der "cache_size" ist nicht so wichtig, denn:
man 5 davfs2.conf hat geschrieben:mount.davfs will always take enough space to cache open files, ignoring this value if necessary.
Gruss, habakug
( # = root | $ = user | !! = mod ) (Vor der PN) (Debianforum-Wiki) (NoPaste)

letzter3
Beiträge: 443
Registriert: 16.07.2011 22:07:31

Re: webdavs-Syncronisation wird nicht aufgeräumt

Beitrag von letzter3 » 17.10.2014 13:32:39

habakug hat geschrieben:Hallo!

Vielleicht postest du mal den Inhalt der Dateien,

Code: Alles auswählen

# cat /etc/davfs2/davfs2.conf
# cat /root/.davfs2/davfs2.conf
Gerne.

Code: Alles auswählen

root@ptLWL01:/etc/davfs2# cat davfs2.conf
# davfs2 configuration file 2009-04-12
# version 9
# ------------------------------------
                                                                                                                                                                                                                                                                                          
# Copyright (C) 2006, 2007, 2008, 2009 Werner Baumann                                                                                                                                                                                                                                     
                                                                                                                                                                                                                                                                                          
# Copying and distribution of this file, with or without modification, are                                                                                                                                                                                                                
# permitted in any medium without royalty provided the copyright notice                                                                                                                                                                                                                   
# and this notice are preserved.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
                                                                                                                                                                                                                                                                                          
# Please read the davfs2.conf (5) man page for a description of the                                                                                                                                                                                                                       
# configuration options and syntax rules.                                                                                                                                                                                                                                                 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
# Available options and default values                                                                                                                                                                                                                                                    
# ====================================

# General Options
# ---------------

# dav_user        davfs2            # system wide config file only
# dav_group       davfs2            # system wide config file only
# ignore_home                       # system wide config file only
# kernel_fs       fuse
# buf_size        16                 # KiByte

# WebDAV Related Options
# ----------------------

# use_proxy       1                 # system wide config file only
# proxy                             # system wide config file only
# servercert
# clientcert
# secrets         ~/.davfs2/secrets # user config file only
# ask_auth        1
# use_locks       1
# lock_owner      <user-name>
# lock_timeout    1800              # seconds
# lock_refresh    60                # seconds
# use_expect100   0
# if_match_bug    0
# drop_weak_etags 0
# allow_cookie    0
# precheck        1
# ignore_dav_header 0
# server_charset
# connect_timeout 10                # seconds
# read_timeout    30                # seconds
# retry           30                # seconds
# max_retry       300               # seconds
# add_header

# Cache Related Options
# ---------------------

# backup_dir      lost+found
# cache_dir       /var/cache/davfs2 # system wide cache
#                 ~/.davfs2/cache   # per user cache
# cache_size      50                # MiByte
# table_size      1024
# dir_refresh     60                # seconds
# file_refresh    1                 # second
# delay_upload    10
# gui_optimize    0

# Debugging Options
# -----------------

# debug           # possible values: config, kernel, cache, http, xml,
                  #      httpauth, locks, ssl, httpbody, secrets, most
Die "#" sind nicht von mir, ist standard.

root hat keine eigene conf.

Code: Alles auswählen

root@ptLWL01:~# ls -a
.   .aptitude      .bashrc  bin     .config  Desktop    Downloads  .freeipmi  .gconfd  .gnome2_private  gpg-key.asc     .gvfs          .kde    .mc    .mcoprc  .mysqlgui       Öffentlich  .profile  .recently-used.xbel  .ssh       .thumbnails  Vorlagen     .xsession-errors
..  .bash_history  Bilder   .cache  .dbus    Dokumente  .duply     .gconf     .gnome2  .gnupg           .gtk-bookmarks  .ICEauthority  .local  .mcop  Musik    .mysql_history  .pki        .qt       .rnd                 .synaptic  Videos       .Xauthority
Es greifen also die defaults. Sind die eigentlich fest einkompiliert?

Michael

letzter3
Beiträge: 443
Registriert: 16.07.2011 22:07:31

Re: webdavs-Syncronisation wird nicht aufgeräumt

Beitrag von letzter3 » 31.10.2014 15:42:34

Ich habe die conf wie folgt angepasst.

Code: Alles auswählen

...
# Cache Related Options
# ---------------------

# backup_dir      lost+found
# cache_dir       /var/cache/davfs2 # system wide cache
#                 ~/.davfs2/cache   # per user cache
cache_size      50                # MiByte
# table_size      1024
# dir_refresh     60                # seconds
# file_refresh    1                 # second
delay_upload    200
# gui_optimize    0
Leider wird das cache-Verzeichnis immer noch nicht geleert.

Code: Alles auswählen

root@ptLWL01:~# du -b /var/cache/davfs2/
7274380723      /var/cache/davfs2/USER.webdav.hidrive.strato.com+mnt-webdav.USER+root
7274389409      /var/cache/davfs2/
root@ptLWL01:~# 
Hat irgendwer 'ne Idee?

letzter3
Beiträge: 443
Registriert: 16.07.2011 22:07:31

Re: webdavs-Syncronisation wird nicht aufgeräumt

Beitrag von letzter3 » 31.10.2014 15:59:33

Ergänzung:

auch ein händisches einhängen -> 10 Minuten warten -> aushängen löscht den cache nicht.

Code: Alles auswählen

root@ptLWL01:~# umount.davfs /mnt/webdav.USER
umount.davfs: warte bis mount.davfs (PID 14615) die Dateien im Cache
gesichert hat .. OK
Das Verzeichnis ist aber immer noch voll.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: webdavs-Syncronisation wird nicht aufgeräumt

Beitrag von rendegast » 08.12.2014 12:05:59

letzter3 hat geschrieben:

Code: Alles auswählen

...] && echo "USER\nPASSWORT"|mount ...

Code: Alles auswählen

# echo "USER\nPASSWORT"
USER\nPASSWORT

# echo -e "USER\nPASSWORT"
USER
PASSWORT
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Antworten