Forums

Skip to content

Advanced search
  • Quick links
    • Unanswered topics
    • Active topics
    • Search
  • FAQ
  • Login
  • Register
  • Board index International Gentoo Users Deutsches Forum (German) Diskussionsforum
  • Search

[solved] mount in script nutzen

Unterhaltung über Gentoo und andere Themen: Alles was nicht in ein Support-Forum gehört.
Post Reply
  • Print view
Advanced search
9 posts • Page 1 of 1
Author
Message
Moorenkopf
Apprentice
Apprentice
Posts: 189
Joined: Sun Apr 18, 2004 12:44 pm
Location: NRW

[solved] mount in script nutzen

  • Quote

Post by Moorenkopf » Sat Aug 19, 2006 3:02 pm

Hi,

ich habe einen Cronjob für updatedb eingerichtet: 0 0,14 * * * nice -19 /usr/bin/updatedb
Jetzt möchte ich aber sicherstellen, dass /dev/hdb4 währenddessen (wie in der fstab eingetragen) in /mnt/hd eingebunden ist.

Also dachte ich an

Code: Select all

mount /mnt/hd && nice -19 /usr/bin/updatedb
. Das funktioniert aber nur, wenn /mnt/hd nicht schon vorher eingebunden ist.

Hat jemand einen Tipp, wie ich das überprüfen kann? /mnt/hd vorher aushängen möchte ich natürlich nicht.


Gruß Stefan


PS: Wer mitdenkt wird merken, dass ich /mnt/hd, wenn es vorher nicht gemounted war, hinterher auch wieder aushängen möchte :)
Last edited by Moorenkopf on Mon Aug 21, 2006 10:09 am, edited 1 time in total.
Top
franzf
Advocate
Advocate
User avatar
Posts: 4565
Joined: Tue Mar 29, 2005 9:06 am

  • Quote

Post by franzf » Sat Aug 19, 2006 3:10 pm

Erstell dir ein eigenes Script: myupdatedb (oder so ;))
Das legst du dann anstelle von updatedb in den cron.
Nun kannst du in mount (ohne Parameter zeigt es die aktuell gemounteten Partitionen an) rumgreppen ob schon eingehängt. Falls nein -> mounten, sonst ->updatedb
Aber das ganze drumherum kannst schon selber ;) ist net so schwer.

Code: Select all

man bash
man grep
man mount
Viel Erfolg ;)
Franz
Top
Moorenkopf
Apprentice
Apprentice
Posts: 189
Joined: Sun Apr 18, 2004 12:44 pm
Location: NRW

  • Quote

Post by Moorenkopf » Sat Aug 19, 2006 4:48 pm

Danke, ich hab's gleich mal versucht:

Code: Select all

#!/bin/bash
# HDB4 shows weather /dev/hdb4 is mounted or not (1/0)
HDB4=1
# FALSE shows weather updatedb failed or not (1/0)
FALSE=0

# umount /mnt/hd, if neccessary, and exit
end () {
        if [ $HDB4 -eq "0" ];
        then
                umount /mnt/hd &> /dev/null || echo "failed to umount /mnt/hd" && exit -1;
        fi

        if [ $FALSE -ge "0" ];
        then
                echo "failed to updatedb" && exit -1;
        fi
}


mount | grep "/dev/hdb4 on /mnt/hd" &> /dev/null || HDB4=0;

if [ $HDB4 -eq "0" ];
then
        mount /dev/hdb4 /mnt/hd &> /dev/null || echo "failed to mount /dev/hdb4 /mnt/hd" && exit -1;
fi

nice -19 /usr/bin/updatedb &> /dev/null || false=1 && end
end
Wenn /dev/hdb4 vorher nicht schon gemounted ist, scheint's zu funktionieren, sonst aber nicht.
Wäre nett, wenn ihr da mal drüber gucken könntet.

Gruß Stefan
Top
Fabiolla
Apprentice
Apprentice
User avatar
Posts: 277
Joined: Thu Mar 04, 2004 7:44 pm
Location: somewhere

  • Quote

Post by Fabiolla » Sat Aug 19, 2006 6:13 pm

Hallo,

So wie ich das Script verstehe fehlt da irgndwie die Abfrage auf den Rückgabewert von grep.

Code: Select all

mount | grep "/dev/hdb4 on /mnt/hd" &> /dev/null || HDB4=0; 
Folgendes sollte funktionieren (die If-Abfrage sollte noch optimiert werden, grep kann auch 2 zurückliefern)

Code: Select all

mount | grep "/dev/hdb4 on /mnt/hd" &> /dev/null; return=$?

if [ $return -eq 1 ]; then
    mount /dev/hdb4 /mnt/hd &> /dev/null || echo "failed to mount /dev/hdb4 /mnt/hd" && exit -1;
else
   echo "Ist bereits gemountet"
fi
Top
firefly
Watchman
Watchman
Posts: 5388
Joined: Thu Oct 31, 2002 8:24 pm

  • Quote

Post by firefly » Sat Aug 19, 2006 6:16 pm

nice -19 /usr/bin/updatedb &> /dev/null || false=1 && end
sollte das "false" nicht "FALSE" heißen? vorrausgesetzt du möchtest hier die variable FALSE auf 1 setzen
Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn.
Top
76062563
l33t
l33t
User avatar
Posts: 637
Joined: Mon Aug 16, 2004 1:32 pm
Location: 127.0.0.1

  • Quote

Post by 76062563 » Sun Aug 20, 2006 12:24 am

Moorenkopf wrote:...
# HDB4 shows weather /dev/hdb4 is mounted or not (1/0)
HDB4=1
# FALSE shows weather updatedb failed or not (1/0)
...
Und was machst du wenns regnet?
gentoo - compile your own world
Top
STiGMaTa_ch
Veteran
Veteran
User avatar
Posts: 1686
Joined: Tue Dec 28, 2004 2:26 am
Location: Rüti ZH / Schweiz
Contact:
Contact STiGMaTa_ch
Website

Re: mount in script nutzen

  • Quote

Post by STiGMaTa_ch » Sun Aug 20, 2006 8:59 am

Moorenkopf wrote:Das funktioniert aber nur, wenn /mnt/hd nicht schon vorher eingebunden ist.

Hat jemand einen Tipp, wie ich das überprüfen kann? /mnt/hd vorher aushängen möchte ich natürlich nicht.

Code: Select all

[ ! "`mount |grep /dev/hdb4`" = "" ] && echo "hdb4 ist bereits gemountet" || mount /dev/hdb4 /mnt/hd
Und falls du keine Textausgabe willst bei bereits gemounteter HD4:

Code: Select all

[ "`mount |grep /dev/hda8`" = "" ] && mount /dev/hdb4 /mnt/hd
Lieber Gruss
STiGMaTa
Ich bin Schuldknappe. Das bedeutet ich bin immer an allem Schuld. Und das nicht zu knapp! | Der alltägliche Familienwahnsinn auf meinem BLOG
Top
think4urs11
Bodhisattva
Bodhisattva
User avatar
Posts: 6659
Joined: Wed Jun 25, 2003 9:51 pm
Location: above the cloud

Re: mount in script nutzen

  • Quote

Post by think4urs11 » Sun Aug 20, 2006 9:31 am

Moorenkopf wrote:Also dachte ich an

Code: Select all

mount /mnt/hd && nice -19 /usr/bin/updatedb
. Das funktioniert aber nur, wenn /mnt/hd nicht schon vorher eingebunden ist.
Hat jemand einen Tipp, wie ich das überprüfen kann? /mnt/hd vorher aushängen möchte ich natürlich nicht.

Code: Select all

[ "`grep -s /mnt/hd /etc/mtab`" ] || mount /mnt/hd
Nothing is secure / Security is always a trade-off with usability / Do not assume anything / Trust no-one, nothing / Paranoia is your friend / Think for yourself
Top
Moorenkopf
Apprentice
Apprentice
Posts: 189
Joined: Sun Apr 18, 2004 12:44 pm
Location: NRW

  • Quote

Post by Moorenkopf » Sun Aug 20, 2006 11:25 am

Hallo zusammen
Fabiolla wrote:So wie ich das Script verstehe fehlt da irgndwie die Abfrage auf den Rückgabewert von grep.

Code: Select all

mount | grep "/dev/hdb4 on /mnt/hd" &> /dev/null || HDB4=0; 
Ich hatte mir überlegt HDB4 auf 0 zu setzen, wenn grep nichts findet, weil ich mir nicht anders zu helfen wusste. Das werd ich aber umändern.
76062563 wrote:Und was machst du wenns regnet?
Dann guck ich mal ins Wörterbuch und stelle fest, dass ich die beiden Wörter immernoch dauernd verwechsle :)
firefly wrote:sollte das "false" nicht "FALSE" heißen? vorrausgesetzt du möchtest hier die variable FALSE auf 1 setzen
Richtig, war so geplant.

Ich muss jetzt zur Arbeit, aber das Script dürfte kein Problem mehr sein, danke.

Gruß Stefan

Edit:

Code: Select all

#!/bin/bash
MOUNT=0
[ "`grep -s /dev/hdb4 /mnt/hd /etc/mtab`" ] && MOUNT=1

# mount /mnt/hd if neccessary
if [ $MOUNT -eq 0 ];
then
   mount /mnt/hd &> /dev/null;
   if [ $? -ne 0 ];
        then
                echo "myupdatedb.sh: failed to mount /mnt/hd" | mail -s "`hostname --fqdn`: myupdatedb.sh" root
                exit -1;
        fi
fi

#updatedb
nice -19 /usr/bin/updatedb &> /dev/null
if [ $? -ne 0 ];
then
        echo "myupdatedb.sh: failed to exec /usr/bin/updatedb" | mail -s "`hostname --fqdn`: myupdatedb.sh" root
fi

# umount /mnt/hd if neccessary
if [ $MOUNT -eq 0 ];
then
   umount /mnt/hd &> /dev/null;
fi
Top
Post Reply
  • Print view

9 posts • Page 1 of 1

Return to “Diskussionsforum”

Jump to
  • Assistance
  • ↳   News & Announcements
  • ↳   Frequently Asked Questions
  • ↳   Installing Gentoo
  • ↳   Multimedia
  • ↳   Desktop Environments
  • ↳   Networking & Security
  • ↳   Kernel & Hardware
  • ↳   Portage & Programming
  • ↳   Gamers & Players
  • ↳   Other Things Gentoo
  • ↳   Unsupported Software
  • Discussion & Documentation
  • ↳   Documentation, Tips & Tricks
  • ↳   Gentoo Chat
  • ↳   Gentoo Forums Feedback
  • ↳   Duplicate Threads
  • International Gentoo Users
  • ↳   中文 (Chinese)
  • ↳   Dutch
  • ↳   Finnish
  • ↳   French
  • ↳   Deutsches Forum (German)
  • ↳   Diskussionsforum
  • ↳   Deutsche Dokumentation
  • ↳   Greek
  • ↳   Forum italiano (Italian)
  • ↳   Forum di discussione italiano
  • ↳   Risorse italiane (documentazione e tools)
  • ↳   Polskie forum (Polish)
  • ↳   Instalacja i sprzęt
  • ↳   Polish OTW
  • ↳   Portuguese
  • ↳   Documentação, Ferramentas e Dicas
  • ↳   Russian
  • ↳   Scandinavian
  • ↳   Spanish
  • ↳   Other Languages
  • Architectures & Platforms
  • ↳   Gentoo on ARM
  • ↳   Gentoo on PPC
  • ↳   Gentoo on Sparc
  • ↳   Gentoo on Alternative Architectures
  • ↳   Gentoo on AMD64
  • ↳   Gentoo for Mac OS X (Portage for Mac OS X)
  • Board index
  • All times are UTC
  • Delete cookies

© 2001–2026 Gentoo Authors
Gentoo is a trademark of the Gentoo Foundation, Inc. and of Förderverein Gentoo e.V.
The contents of this document, unless otherwise expressly stated, are licensed under the CC-BY-SA-4.0 license.
The Gentoo Name and Logo Usage Guidelines apply.

Powered by phpBB® Forum Software © phpBB Limited

Privacy Policy