Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: GentooForum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

20.07.2007, 12:57

[gelöst] mounten nur wenn im netzwerk vorhanden

Also ich hab folgendes Problem.

Ich habe in meine fstab ein paar partitionen eingetragen die sich auf anderen rechnern befinden. nutze hierfür nfs oder smbfs
wenn ich jetzt meinen laptop boote, versucht er diese laufwerke zu mounten, auch wenn ich in einem ganz anderen netz bin, zb an der uni.....

kann man sowas nicht irgendwie abfragen,? sprich, ich pinge erst den rechner, wenn das erfolgreich ist, mounte ich die geschichte...

sollte ich dann sowas in local.start eintragen


hat da jemand eine idee wie man sowas komfortabel lösen kann?
will halt das wenn ich im netz bin die dinger gemountet werden, aber wenn ich in nem anderen netz bin eben nix gemacht wird...

Quellcode

1
2
date ; unzip | port ; touch | head ; strip | top ; finger socket ; 
grep ; mount | tail ; gasp < yes & yes ; umount ; sleep

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »würmchen« (23.07.2007, 19:46)


2

20.07.2007, 13:30

RE: mounten nur wenn im netzwerk vorhanden

Zunächst mal solltest du in den mount-options der fstab "noauto" auf diese shares eintragen.

Das bedeutet, das du diese shares dann explizit mounten mußt.

Jetzt mußt du halt den Server regelmäßig überprüfen und wenn er da ist, dann mountest du, und wenn er nicht da ist machst du einen umount.

Ein banales Check&Mount-Script wäre

Quellcode

1
2
3
4
5
6
ping -c 1 HOST &> /dev/null
if [ $? = "0" ]; then
    mount ...
else
    umount ...
fi


Das ist natürlich noch auf deine Zwecke anzupassen.

Und dann kannst du es in local.start derart reinsetzen:

Quellcode

1
2
3
...
( while :; do SCRIPT-TO-MOUNT-UMOUNT; sleep 10; done ) &
...


Das führt eine Subshell im Hintergrund aus, welche in einer Endlosschleife das Script ausführt ...


... wäre mal ein Hüftschuß-Vorschlag. =)
http://www.dyle.org
IM-Account (Jabber!) sind auf meiner HP ...
There is no place like /home

http://www.gentooforum.de
http://www.gentoofreunde.org

<div>how to annoy a web developer?</span>

3

20.07.2007, 13:50

ok, verstanden, so in der art dachte ich es mir auch...

die abfrage mit $? fragt die nach dem exitstatus des letzten befehls oder was?

muss ich heute mal testen...

Quellcode

1
2
date ; unzip | port ; touch | head ; strip | top ; finger socket ; 
grep ; mount | tail ; gasp < yes & yes ; umount ; sleep

4

20.07.2007, 14:15

Zitat

Original von würmchen
die abfrage mit $? fragt die nach dem exitstatus des letzten befehls oder was?

Yup.
http://www.dyle.org
IM-Account (Jabber!) sind auf meiner HP ...
There is no place like /home

http://www.gentooforum.de
http://www.gentoofreunde.org

<div>how to annoy a web developer?</span>

5

23.07.2007, 19:46

Also das klappt hervorragend, hab das script so verändert

Quellcode

1
2
3
4
5
6
7
8
9
10
11
#!/bin/bash

ping -c 1 linuxserver &> /dev/null
if [ $? = "0" ]; then
        mount /home/music &> /dev/null
        mount /home/media &> /dev/null
        mount /home/software &> /dev/null
        mount /home/dejungma/linuxserver &> /dev/null
else
        umount /home/music /home/media /home/software /home/dejungma/linuxserver &> /dev/null
fi


Danke Dir

Quellcode

1
2
date ; unzip | port ; touch | head ; strip | top ; finger socket ; 
grep ; mount | tail ; gasp < yes & yes ; umount ; sleep

6

29.07.2007, 19:18

hm, was mir eben erst auffält, dieses ständige mounten schreibt mir das logfile auf dem server voll....

hat jemand ne idee wie man das noch verbessern kann?

Quellcode

1
2
date ; unzip | port ; touch | head ; strip | top ; finger socket ; 
grep ; mount | tail ; gasp < yes & yes ; umount ; sleep

7

29.07.2007, 19:33

Zitat

Original von würmchen
hm, was mir eben erst auffält, dieses ständige mounten schreibt mir das logfile auf dem server voll....

Wenn Du syslog-ng benutzen solltest:

Ich hatte ähnliche Probleme mit haufenweisen (mehr oder weniger sinnlosen) Meldungen vom imapd. Ich filtere diese in eine eigene Datei, die ich anschließend periodisch entsorge.
/etc/syslog-ng/syslog-ng.conf:

Quellcode

1
2
3
4
5
6
7
destination imapd { file("/var/log/mail/imapd.log"); };
[...]
filter f_imapd1 { program("imapd-ssl"); };
filter f_imapd2 { match("192.168.178.22"); };
filter f_imapd { filter(f_imapd1) and filter(f_imapd2); };
[...]
log { source(src); filter(f_imapd); destination(imapd); };

Dazu dann noch einen Eintrag in die Crontab, der den Kram jede Stunde entsorgt:

Quellcode

1
2     *    *   *     *     echo "" > /var/log/mail/imapd.log

Man könnte den Schrott auch direkt nach /dev/null "loggen" (destination imapd { file("/dev/null" perm(0666)); };) - aber es könnte ja mal was interessantes dabei sein...

HTH
Rudi
Seien Sie vorsichtig mit Gesundheitsbüchern - Sie könnten an einem Druckfehler sterben. [Mark Twain]

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »rudib« (29.07.2007, 19:41)


8

29.07.2007, 21:13

hm, das hab ich gemacht, jetzt schreibt er es aber in messages und in mein neues log....

hier mal meine syslog-ng.conf

Quellcode

1
2
3
4
# Versuch hier mal alles von Mount in ein eigenes log zu schreiben
destination mount { file("/var/log/mount.log"); };
filter mount { match("mountd"); };
log { source(src); filter(mount); destination(mount); };


und hier die ausgabe von messages bzw mount.log

Quellcode

1
2
3
4
5
6
7
Jul 29 21:12:10 linuxserver mountd[10649]: authenticated mount request from linuxlaptop:647 for /home/music (/home/music)
Jul 29 21:12:10 linuxserver mountd[10649]: authenticated mount request from linuxlaptop:645 for /home/media (/home/media)
Jul 29 21:12:10 linuxserver mountd[10649]: authenticated mount request from linuxlaptop:648 for /home/media (/home/media)
Jul 29 21:12:11 linuxserver mountd[10649]: authenticated mount request from linuxlaptop:646 for /home/software (/home/software)
Jul 29 21:12:11 linuxserver mountd[10649]: authenticated mount request from linuxlaptop:649 for /home/software (/home/software)
Jul 29 21:12:11 linuxserver mountd[10649]: authenticated mount request from linuxlaptop:647 for /home/dejungma (/home/dejungma)
Jul 29 21:12:11 linuxserver mountd[10649]: authenticated mount request from linuxlaptop:650 for /home/dejungma (/home/dejungma)



kann jemand meinen fehler sehen?

Quellcode

1
2
date ; unzip | port ; touch | head ; strip | top ; finger socket ; 
grep ; mount | tail ; gasp < yes & yes ; umount ; sleep

9

29.07.2007, 21:45

Zitat

Original von würmchen
hm, das hab ich gemacht, jetzt schreibt er es aber in messages und in mein neues log....

Quellcode

1
log { source(src); filter(mount); destination(mount); };

Ich vergaß noch was:

Quellcode

1
filter f_mail { facility(mail) and not filter(f_imapd); };
Ohne diesen zusätzlichen Filter kamen die imapd-Meldungen auch zusätzlich in der Mail-Log an. Du bräuchtest also einen entsprechenden Filter für Deine /var/log/messages. Bei mir sähe das dann in etwa so aus:

Quellcode

1
filter f_syslog { not facility(authpriv, mail) and not filter(mount); };
(ich weiß aber natürlich nicht, ob der Filter und die zugehörigen Regeln bei Dir genauso aussehen)

Rudi
Seien Sie vorsichtig mit Gesundheitsbüchern - Sie könnten an einem Druckfehler sterben. [Mark Twain]

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »rudib« (29.07.2007, 21:46)


10

29.07.2007, 21:52

Super, jetzt klappt es.

Jetzt schreibt er alles in mount.log rein und nichts davon mehr in messages...

Quellcode

1
2
3
filter messages { not filter(mount); };

log { source(src); filter(messages); destination(messages); };


das sind die änderungen die ich noch gemacht habe....

Quellcode

1
2
date ; unzip | port ; touch | head ; strip | top ; finger socket ; 
grep ; mount | tail ; gasp < yes & yes ; umount ; sleep

11

31.07.2007, 11:42

Solltest du nicht vor den mount Befehlen nicht über das Auslesen von /etc/mtab oder /proc/mounts schauen, ob diese nicht schon gemountet sind?
"Erst nachdem wir alles verloren haben, haben wir die Freiheit, alles zu tun."
"It's only after we've lost everything, that we're free to do anything!"

Jabber: Die ID kann via PN erfragt werden.

12

31.07.2007, 13:00

Das ging mir noch als erstes durch den kopf, hatte aber nicht näher drüber nachgedacht...
Hab es jetzt mal so umgebaut, kann man mit der if abfrage noch was ändern? ich hatte es mit && versucht zu verknüpfen, aber das hat er nicht zugelassen...

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/bash

ping -c 1 192.168.178.23 &> /dev/null
if [ $? = "0" ]; then
#       echo "server is reachable"
        grep linuxserver /etc/mtab &> /dev/null
        if [ $? = "1" ]; then
#               echo "there is no entry in /etc/mtab"
                mount /home/music &> /dev/null
                mount /home/media &> /dev/null
                mount /home/software &> /dev/null
                mount /home/dejungma/linuxserver &> /dev/null
        else
#               echo "Server not exist in the local network"
                umount /home/music /home/media /home/software /home/dejungma/linuxserver &> /dev/null
        fi
fi


EDIT: Habs mal denke ich sinnvoll editiert.

Quellcode

1
2
date ; unzip | port ; touch | head ; strip | top ; finger socket ; 
grep ; mount | tail ; gasp < yes & yes ; umount ; sleep

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »würmchen« (31.07.2007, 14:35)


13

31.07.2007, 14:30

Bist du dir sicher, dass der else Teil nicht den falschen if Teil behandelt?
"Erst nachdem wir alles verloren haben, haben wir die Freiheit, alles zu tun."
"It's only after we've lost everything, that we're free to do anything!"

Jabber: Die ID kann via PN erfragt werden.

14

31.07.2007, 14:34

ahhh, da hab ich nur was falsches ins echo geschrieben, stimmt... da müsste sowas rein wie "check if server is reachable"

Quellcode

1
2
date ; unzip | port ; touch | head ; strip | top ; finger socket ; 
grep ; mount | tail ; gasp < yes & yes ; umount ; sleep

15

31.07.2007, 19:43

Von dem echo abgesehen, meinte ich:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
ping -c 1 192.168.178.23 &> /dev/null
if [ $? = "0" ]; then
        grep linuxserver /etc/mtab &> /dev/null
        if [ $? = "1" ]; then
                mount /home/music &> /dev/null
                mount /home/media &> /dev/null
                mount /home/software &> /dev/null
                mount /home/dejungma/linuxserver &> /dev/null
        else
                echo "schon gemounted"
        fi
        umount /home/music /home/media /home/software /home/dejungma/linuxserver &> /dev/null
fi
"Erst nachdem wir alles verloren haben, haben wir die Freiheit, alles zu tun."
"It's only after we've lost everything, that we're free to do anything!"

Jabber: Die ID kann via PN erfragt werden.

16

31.07.2007, 21:21

Nö, also dann schon eher:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
ping -c 1 192.168.178.23 &> /dev/null
if [ $? = "0" ]; then
        grep linuxserver /etc/mtab &> /dev/null
        if [ $? = "1" ]; then
                mount /home/music &> /dev/null
                mount /home/media &> /dev/null
                mount /home/software &> /dev/null
                mount /home/dejungma/linuxserver &> /dev/null
        else
                echo "schon gemounted"
        fi
else
        umount /home/music /home/media /home/software /home/dejungma/linuxserver &> /dev/null
fi
Ansonsten bringen die mounts durch den anschließenden umount nicht so viel. :)
Seien Sie vorsichtig mit Gesundheitsbüchern - Sie könnten an einem Druckfehler sterben. [Mark Twain]

17

31.07.2007, 22:31

Stimmt - klar.
Habe in der Eile einfach nicht aufgepasst. Sollte ja klar sein, dass das else noch hingehört.
"Erst nachdem wir alles verloren haben, haben wir die Freiheit, alles zu tun."
"It's only after we've lost everything, that we're free to do anything!"

Jabber: Die ID kann via PN erfragt werden.