• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] Fehlsteuerung mit cifs-Laufwerk durch rsync

libelle17

Newbie
Moin,
habe Arbeitsgruppe mit Win XP-PCs und einem OpenSuse-Server mit Sambalaufwerk. Von dort automatische Datensicherung auf einen XP-Rechner, von dem einige Ordner mit smbfs auf Samba eingebunden sind, über crontab.

Datei /etc/crontab:
...
-0 0 * * * rsync -avuz --delete --iconv=iso8859-15,utf8 /DATA/ /mnt/anmeldl/daten
...

Befehl "mount":
...
//192.168.1.8/daten on /mnt/anmeldl/daten type cifs (rw,mand,noexec,nosuid,nodev)
...

Möglicherweise war letzte Nacht das cifs-Laufwerk aus irgendwelchen Gründen nicht gemountet, jedenfalls hat rsync die ganzen Daten anstatt auf den Windows-PC auf die eigene Linux-Platte kopiert, die dann zu 100% belegt war, woraufhin sich der Linux-Server und meine gesamte Praxis-EDV extrem ungewohnt verhielt.
Nach einem Neustart des Linux-Servers waren die fehlgesteuerten Daten und damit der gesamte Fehler hinter dem dann richtig gemounteten cifs-Laufwerk versteckt.
Die weiteren Geschehnisse sollen nicht näher erläutert zu werden, sie sollten sich aber nicht wiederholen.
Kann mir jemand sagen, wie man in den rsync-Befehl einbauen kann, dass er nur abläuft, wenn das cifs-Laufwerk richtig gemoutet ist?
Besten Dank im Voraus, Gerald


P.S.: sollte die smb.conf anhängen:
# smb.conf is the main Samba configuration file. You find a full commented
# version at /usr/share/doc/packages/samba/examples/smb.conf.SUSE if the
# samba-doc package is installed.
# Date: 2009-08-01
[global]
workgroup = GSPRAXIS
passdb backend = tdbsam
printing = cups
printcap name = cups
printcap cache time = 750
cups options = raw
map to guest = Bad User
include = /etc/samba/dhcp.conf
logon path = \\%L\profiles\.msprofile
logon home = \\%L\%U\.9xprofile
logon drive = P:

unix charset = ISO8859-15
## character set = ISO8859-15
# dos charset = 850
# client code page = 850

usershare allow guests = No
idmap gid = 10000-20000
idmap uid = 10000-20000
security = domain
# hier stand standardmäßig 100:
usershare max shares = 1000
add machine script = /usr/sbin/useradd -c Machine -d /var/lib/nobody -s /bin/false %m$
domain logons = No
# hier stand standardmäßig No:
domain master = Auto
username map = /etc/samba/smbusers
socket options = TCP_NODELAY

# diese drei Zeilen standen in der alten Datei nicht
wins support = No

# näster Befehl ggf. fuer openvpn noetig
# hosts allow = 192.168.1.0/24 10.0.0.0/24
# interfaces = 192.168.1.0/2 10.0.0.0/24
[daten]
comment = /DATA
path = /DATA
# inherit acls = Yes
# users = users, @praxis, gerald, Gerald, schade, Schade
# browseable = Yes
read only = No
directory mask = 775
vfs objects = recycle
recycle:versions = Yes
recycle:keeptree = Yes
recycle:repository = Papierkorb
[datenalt]
comment = /DAT
path = /DAT
read only = No
directory mask = 775
vfs objects = recycle
recycle:versions = Yes
recycle:keeptree = Yes
recycle:repository = Papierkorb
[wurzel]
comment = /
path = /
browseable = Yes
readonly = No
directory mask = 775
wide links = No
follow symlinks = Yes
dont descend = DATA,SAM,wdb2,mnt,srv/www/tomcat55/base,opt/kde3/share,media,tmp,dev,home/sturm,root/.kde,sys,etc/alternatives,etc/xen,etc/rc.d,etc/X11,etc/sysconfig/network/providers,etc/gconf,etc/etc,proc/tty,proc/self,proc,var/cache,var/lib/named,var/lib/ntp,lib/modules,lib/udev/devices,usr/lib64/gcc/x86_64-suse-linux/4.2.1,usr/lib64/lib64,usr/share/qt4/lib64,usr/bin/X11/X11
users = @praxis
# veto files = /etc/rc.d
vfs objects = recycle
recycle:versions = Yes
recycle:keeptree = Yes
recycle:repository = Papierkorb

[configdb]
comment = /DATA/ConfigDB (ConfigDB)
path = /DATA/ConfigDB
browseable = Yes
readonly = No
directory mask = 775
vfs objects = recycle
recycle:versions = Yes
recycle:keeptree = Yes
recycle:repository = Papierkorb

[anmeldr]
comment = /mnt/anmeldr (cifs)
path = /mnt/anmeldr
users = @praxis, gerald, Gerald, schade, Schade
browseable = Yes
readonly = No
directory mask = 775
[anmeldl]
comment = /mnt/anmeldl (cifs)
path = /mnt/anmeldl
users = @praxis, gerald, Gerald, schade, Schade
browseable = Yes
readonly = No
directory mask = 775
[mitte]
comment = /mnt/mitte (cifs)
path = /mnt/mitte
# users = @praxis, gerald, Gerald, schade, Schade
browseable = Yes
readonly = No
directory mask = 775
[sono]
path = /mnt/sono
users = @praxis, gerald, Gerald, schade, Schade
browseable = Yes
readonly = No
directory mask = 775
[labor]
path = /mnt/labor
users = @praxis, gerald, Gerald, schade, Schade
browseable = Yes
readonly = No
directory mask = 775
[gsn2]
path = /mnt/gsn2
users = @praxis, gerald, Gerald, schade, Schade
browseable = Yes
readonly = No
directory mask = 775

[turbomed]
comment = /opt/turbomed
path = /opt/turbomed
read only = No
vfs objects = recycle
recycle:versions = Yes
recycle:keeptree = Yes
recycle:repository = Papierkorb
[mysql]
comment = /var/lib/mysql
path = /var/lib/mysql
# users = @praxis
readonly = Yes
# [proc]
# comment = /proc
# path = /proc
# users = @praxis
# readonly = Yes

[obsläuft]
comment = /obsläuft
path = /obsläuft
# users = @praxis
directory mask = 775
readonly = No
vfs objects = recycle
recycle:versions = Yes
recycle:keeptree = Yes
recycle:repository = Papierkorb


[samba]
comment = /etc/samba
path = /etc/samba
readonly = Yes
# users = @praxis
[gerald]
comment = /DATA/shome/gerald
path = /DATA/shome/gerald
# users = @praxis
readonly = Yes
browseable = Yes
vfs objects = recycle
recycle:versions = Yes
recycle:keeptree = Yes
recycle:repository = Papierkorb

[geraldprivat]
comment = /DATA/shome/gerald
path = /DATA/shome/gerald
# users = @praxis
readonly = No
vfs objects = recycle
recycle:versions = Yes
recycle:keeptree = Yes
recycle:repository = Papierkorb
[kothny]
comment = /DATA/shome/kothny
path = /DATA/shome/kothny
readonly = Yes
vfs objects = recycle
recycle:versions = Yes
recylce:keeptree = Yes
recycle:repository = Papierkorb
[kothnyprivat]
comment = /DATA/shome/kothny
path = /DATA/shome/kothny
readonly = No
vfs objects = recycle
recycle:versions = Yes
recycle:keeptree = Yes
recycle:repository = Papierkorb

[sambaverz]
comment = /etc/samba
path = /etc/samba
read only = No

[homes]
comment = Home Directories
valid users = %S, %D%w%S
browseable = No
read only = No
inherit acls = Yes
[profiles]
comment = Network Profiles Service
path = %H
read only = No
store dos attributes = Yes
create mask = 0600
directory mask = 0700
[users]
comment = All users
path = /home
read only = No
inherit acls = Yes
veto files = /aquota.user/groups/shares/
[groups]
comment = All groups
path = /home/groups
read only = No
inherit acls = Yes
[printers]
comment = All Printers (/var/tmp)
path = /var/tmp
printable = Yes
create mask = 0600
browseable = No
[print$]
comment = Printer Drivers (/var/lib/samba/drivers)
path = /var/lib/samba/drivers
write list = @ntadmin root
force group = ntadmin
create mask = 0664
directory mask = 0775
[sdc2]
path = /mnt/sdc2

[sdc3]
path = /mnt/sdc3

[sdd2]
path = /mnt/sdd2

[sdd3]
path = /mnt/sdd3
[sde2]
path = /mnt/sde2
[sde3]
path = /mnt/sde3
[sdf2]
path = /mnt/sdf2
[sdf3]
path = /mnt/sdf3
[wurzelalt]
path = /wurzelalt
## Share disabled by YaST
# [netlogon]
# comment = Network Logon Service
# path = /var/lib/samba/netlogon
# write list = root
 

rolle

Guru
Packe Deinen rsync Befehl in ein Bashscript und rufe das in der crontab auf anstatt rsync direkt. Dann muß in das Script vor den rsync Befehl noch eine Abfrage, ob die Freigabe gemountet ist. Dazu hast Du viele Möglichkeiten - starte mount und greppe nach der richtigen Zeile, falls diese da ist starte rsync - lege eine Dummydatei im unbemounteten Mountpoint an und frage nach deren Existenz, findet Dein Linux sie, ist nicht gemountet - oder andersherum, lege eine Dummydatei auf der Freigabe an, wenn die da ist, dann kann rsync loslaufen.... Möglichkeiten gibt es da viele. Meines Erachtens wäre eine if-Schleife im Script am schlauesten.
 
Oben