mount ohne ausgabe [gelöst]

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Pischti
Beiträge: 417
Registriert: 20.02.2002 12:54:18
Wohnort: dresden

mount ohne ausgabe [gelöst]

Beitrag von Pischti » 10.08.2005 18:08:22

hi,
ist es möglich die ausgabe beim mount-befehl zu unterdrücken?
ein

Code: Alles auswählen

mount quelle ziel 2> /dev/null
oder ähnliche konstrukte haben nicht funktioniert. kommt das direkt vom kernel?
wenn ja, kann man das (möglichst partiell) abschalten ?

ich brauch das für ein backupsript, dass per ssh auf einem anderen rechner eine festplatte einmountet ...
Zuletzt geändert von Pischti am 12.08.2005 14:14:41, insgesamt 1-mal geändert.
gruss pischti
debian stable

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 10.08.2005 19:06:09

Hast du das auch versucht ?

Code: Alles auswählen

root:~# ls /mnt/sda4
root:~# mount /mnt/sda4 2>&1 1>/dev/null
root:~# ls /mnt/sda4
backup  software
Gruß
gms

Benutzeravatar
Pischti
Beiträge: 417
Registriert: 20.02.2002 12:54:18
Wohnort: dresden

Beitrag von Pischti » 10.08.2005 19:32:37

hab ich auch schon - geht nicht
vielleicht noch als info: die meldung kommt nur auf der konsole des rechners selbst, nicht
auf meiner remote-konsole. der rechner steht im keller. da mein backup aber jede nacht durchläuft, würde ich nach eine woche auf meinem "keller-rechner" die konsole zugemüllt haben ...


--------------
gleich noch ne frage (auch fürs backup)
ich möchte den ordner /tmp nach /mnt ohne inhalt kopieren, ala

Code: Alles auswählen

cp -p /tmp /mnt/tmp
so dass dann das ergebnis so ausschaut: /mnt/tmp
habs auch schon mit anderen varianten probiert, ich kriegs nich hin :-(

hintergrund, ich will eigentlich nur den ordner erstellen - aber mit den selben rechten, wie der originalordner, tmp ist jetzt hier auch nur ein beispiel. bei einem mkdir müsste ich ja erst aufwendig die rechte des originalen ordners auslesen
gruss pischti
debian stable

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 10.08.2005 20:06:27

jetzt bin ich aber doch gespannt, was der Mountbefehl bei obiger EIngabe bei dir noch ausspuckt. Ist das ein Sambashare oder NFS ?

Zum cp/mkdir Problem ist mir noch nicht wirklich eine tolle Idee eingefallen

Gruß
gms

[edit]

Ok, funktioniert nicht:

Code: Alles auswählen

root:/tmp#  mount /mnt/sda4 -o blabla 2>&1 1>/dev/null
mount: wrong fs type, bad option, bad superblock on /dev/sda4,
       missing codepage or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so
so sollte es funktionieren:

Code: Alles auswählen

root:/tmp# mount /mnt/sda4 -o blabla 2>/dev/null 1>/dev/null
root:/tmp# /bin/mount /mnt/sda4 2>/dev/null 1>&2 
Alter Fehler, die Reihenfolge hat nicht gepaßt Dabei war ich mir so sicher, daß sie richtig ist.
[/edit]

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 10.08.2005 21:05:54

beim anderen Problem dachte ich zuerst an "tar", aber
so aufwendig ist das Auslesen ja gar nicht:
[edit]
chown `stat -c%U:%G dir1` dir2
chmod `stat -c%a dir` dir2
[/edit]

Gruß
gms

Benutzeravatar
Pischti
Beiträge: 417
Registriert: 20.02.2002 12:54:18
Wohnort: dresden

Beitrag von Pischti » 10.08.2005 21:09:39

das klappt so nicht ... nur auf einer remote-console ist keine meldung. hier kommt aber sowiso nix, auch ohne umleitung ...
p.s. in deinem beispielen gehst du von einem entsprechendem eintrag in der fstab aus - oder ?
gruss pischti
debian stable

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 10.08.2005 21:17:35

gleiches Verhalten auf VT1, auch wenn ich den Eintrag aus der fstab auskommentiere:

Code: Alles auswählen

mount /dev/sda4 /mnt/sda4 -t xfs 2>/dev/null 1>&2
Sorry, läßt sich bei mir nicht produzieren, du kannst aber einmal folgendes probieren:

Code: Alles auswählen

strace -o mount.trc mount /dev/sda4 /mnt/sda4 -t xfs 2>/dev/null 1>&2
Im mount.trc stehen danach alle Systemcalls drinnen, daraus sollten wir erkennen können, was da wirklich passiert.

Gruß
gms

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 10.08.2005 21:32:37

Kann es sein, daß diese Meldungen gar nicht vom "mount" Befehl kommen, sondern Fehlermeldungen des Kernels sind (vielleicht nur ausgelöst durch "mount) , die sich auf die Console durchschlagen ?

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22360
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von KBDCALLS » 10.08.2005 21:42:05

Dann könnte man die Meldungen doch nach /dev/tty10 umleiten Beispielsweise.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

Benutzeravatar
Pischti
Beiträge: 417
Registriert: 20.02.2002 12:54:18
Wohnort: dresden

Beitrag von Pischti » 10.08.2005 23:07:56

strace kannte ich noch gar nicht, bringt aber auch nix. die msg kommt betsimmt vom kernel. gibts ne möglichkeit das abzufangen?. irgendwie schreiben mir zu viele sachen auf die konsole. dafür gibt es eigentlich das log ...

anbei mal der trace vom mount, hoffe mal das niemand was dagegen hat, sind ja schon paar zeilen ... :-)

Code: Alles auswählen

      1 execve("/bin/mount", ["mount", "-t", "ext3", "/dev/hdc4", "/mnt/"], [/* 18 vars */]) = 0
      2 uname({sys="Linux", node="Jana", ...})  = 0
      3 brk(0)                                  = 0x805a000
      4 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40017000
      5 access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
      6 open("/etc/ld.so.preload", O_RDONLY)    = -1 ENOENT (No such file or directory)
      7 open("/etc/ld.so.cache", O_RDONLY)      = 4
      8 fstat64(4, {st_mode=S_IFREG|0644, st_size=19298, ...}) = 0
      9 old_mmap(NULL, 19298, PROT_READ, MAP_PRIVATE, 4, 0) = 0x40018000
     10 close(4)                                = 0
     11 access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
     12 open("/lib/libblkid.so.1", O_RDONLY)    = 4
     13 read(4, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0P\35\0\000"..., 512) = 512
     14 fstat64(4, {st_mode=S_IFREG|0644, st_size=27548, ...}) = 0
     15 old_mmap(NULL, 26520, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4, 0) = 0x4001d000
     16 old_mmap(0x40023000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4, 0x6000) = 0x40023000
     17 close(4)                                = 0
     18 access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
     19 open("/lib/libuuid.so.1", O_RDONLY)     = 4
     20 read(4, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\240\f\0"..., 512) = 512
     21 fstat64(4, {st_mode=S_IFREG|0644, st_size=9232, ...}) = 0
     22 old_mmap(NULL, 12260, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4, 0) = 0x40024000
     23 old_mmap(0x40026000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4, 0x1000) = 0x40026000
     24 close(4)                                = 0
     25 access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
     26 open("/lib/tls/libc.so.6", O_RDONLY)    = 4
     27 read(4, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`Z\1\000"..., 512) = 512
     28 fstat64(4, {st_mode=S_IFREG|0755, st_size=1254468, ...}) = 0
     29 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40027000
     30 old_mmap(NULL, 1264780, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4, 0) = 0x40028000
     31 old_mmap(0x40152000, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4, 0x129000) = 0x40152000
     32 old_mmap(0x4015b000, 7308, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4015b000
     33 close(4)                                = 0
     34 set_thread_area({entry_number:-1 -> 6, base_addr:0x400278a0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0,         limit_in_pages:1, seg_not_present:0, useable:1}) = 0
     35 munmap(0x40018000, 19298)               = 0
     36 brk(0)                                  = 0x805a000
     37 brk(0x807b000)                          = 0x807b000
     38 brk(0)                                  = 0x807b000
     39 umask(022)                              = 022
     40 open("/dev/null", O_RDWR|O_LARGEFILE)   = 4
     41 close(4)                                = 0
     42 getuid32()                              = 0
     43 geteuid32()                             = 0
     44 getgid32()                              = 0
     45 getgid32()                              = 0
     46 prctl(0x3, 0x20, 0x805a030, 0x40023658, 0x40023658) = 1
     47 open("/etc/blkid.tab", O_RDONLY)        = 4
     48 fstat64(4, {st_mode=S_IFREG|0644, st_size=528, ...}) = 0
     49 fcntl64(4, F_GETFL)                     = 0 (flags O_RDONLY)
     50 fstat64(4, {st_mode=S_IFREG|0644, st_size=528, ...}) = 0
     51 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40018000
     52 _llseek(4, 0, [0], SEEK_CUR)            = 0
     53 read(4, "<device DEVNO=\"0x0341\" TIME=\"112"..., 4096) = 528
     54 read(4, "", 4096)                       = 0
     55 close(4)                                = 0
     56 munmap(0x40018000, 4096)                = 0
     57 getuid32()                              = 0
     58 geteuid32()                             = 0
     59 lstat64("/etc/mtab", {st_mode=S_IFREG|0644, st_size=219, ...}) = 0
     60 stat64("/sbin/mount.ext3", 0xbffffa30)  = -1 ENOENT (No such file or directory)
     61 rt_sigprocmask(SIG_BLOCK, ~[TRAP SEGV RTMIN], NULL, 8) = 0
     62 mount("/dev/hdc4", "/mnt/", "ext3", 0xc0ed0000, 0) = 0
     63 readlink("/dev", 0xbfffda80, 4096)      = -1 EINVAL (Invalid argument)
     64 readlink("/dev/hdc4", 0xbfffda80, 4096) = -1 EINVAL (Invalid argument)
     65 readlink("/mnt", 0xbfffda80, 4096)      = -1 EINVAL (Invalid argument)
     66 open("/etc/mtab", O_RDWR|O_CREAT|O_LARGEFILE, 0644) = 4
     67 close(4)                                = 0
     68 rt_sigaction(SIGHUP, {0x804df30, ~[RTMIN], 0}, NULL, 8) = 0
     69 rt_sigaction(SIGINT, {0x804df30, ~[RTMIN], 0}, NULL, 8) = 0
     70 rt_sigaction(SIGQUIT, {0x804df30, ~[RTMIN], 0}, NULL, 8) = 0
     71 rt_sigaction(SIGILL, {0x804df30, ~[RTMIN], 0}, NULL, 8) = 0
     72 rt_sigaction(SIGTRAP, {0x804df30, ~[RTMIN], 0}, NULL, 8) = 0
     73 rt_sigaction(SIGABRT, {0x804df30, ~[RTMIN], 0}, NULL, 8) = 0
     74 rt_sigaction(SIGBUS, {0x804df30, ~[RTMIN], 0}, NULL, 8) = 0
     75 rt_sigaction(SIGFPE, {0x804df30, ~[RTMIN], 0}, NULL, 8) = 0
     76 rt_sigaction(SIGKILL, {0x804df30, ~[RTMIN], 0}, NULL, 8) = -1 EINVAL (Invalid argument)
     77 rt_sigaction(SIGUSR1, {0x804df30, ~[RTMIN], 0}, NULL, 8) = 0
     78 rt_sigaction(SIGSEGV, {0x804df30, ~[RTMIN], 0}, NULL, 8) = 0
     79 rt_sigaction(SIGUSR2, {0x804df30, ~[RTMIN], 0}, NULL, 8) = 0
     80 rt_sigaction(SIGPIPE, {0x804df30, ~[RTMIN], 0}, NULL, 8) = 0
     81 rt_sigaction(SIGALRM, {0x804df60, ~[RTMIN], 0}, NULL, 8) = 0
     82 rt_sigaction(SIGTERM, {0x804df30, ~[RTMIN], 0}, NULL, 8) = 0
     83 rt_sigaction(SIGSTKFLT, {0x804df30, ~[RTMIN], 0}, NULL, 8) = 0
     84 getpid()                                = 4930
     85 open("/etc/mtab~4930", O_WRONLY|O_CREAT|O_LARGEFILE, 0600) = 4
     86 close(4)                                = 0
     87 link("/etc/mtab~4930", "/etc/mtab~")    = 0
     88 unlink("/etc/mtab~4930")                = 0
     89 open("/etc/mtab~", O_WRONLY|O_LARGEFILE) = 4
     90 fcntl64(4, F_SETLK64, {type=F_WRLCK, whence=SEEK_SET, start=0, len=0}, 0xbffffa00) = 0
     91 close(4)                                = 0                                                                                92 umask(077)                              = 022
     93 open("/etc/mtab", O_RDWR|O_APPEND|O_CREAT|O_LARGEFILE, 0666) = 4                                                           94 umask(022)                              = 077
     95 fstat64(4, {st_mode=S_IFREG|0644, st_size=219, ...}) = 0                                                                   96 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40018000
     97 fstat64(4, {st_mode=S_IFREG|0644, st_size=219, ...}) = 0                                                                   98 _llseek(4, 0, [0], SEEK_SET)            = 0
     99 read(4, "/dev/hda1 / ext3 rw,errors=remou"..., 219) = 219                                                                 100 write(4, "/dev/hdc4 /mnt ext3 rw 0 0\n", 27) = 27
    101 close(4)                                = 0                                                                               102 munmap(0x40018000, 4096)                = 0
    103 unlink("/etc/mtab~")                    = 0                                                                               104 rt_sigprocmask(SIG_UNBLOCK, ~[TRAP SEGV RTMIN], NULL, 8) = 0
    105 exit_group(0)
gruss pischti
debian stable

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 11.08.2005 07:01:10

laut deinem Trace wird nur eine zeile in "/etc/mtab" eingefügt:

Code: Alles auswählen

/dev/hdc4 /mnt ext3 rw 0 0
wenn die Meldungen vom Kernel kommen, können die sicher in ein Log oder auf ein anderes VT umgeleitet werden.

Code: Alles auswählen

root@gms1:~# cat /proc/sys/kernel/printk
7       4       1       7
die erste Zahl ist der Loglevel, der für die Console interessant ist
Wenn du diesen auf 2 setzt werden nur kritische Fehlermeldungen auf der Console ausgegeben:

Code: Alles auswählen

root@gms1:~# echo kernel/printk = 2 4 1 7 >> /etc/sysctl.conf
root@gms1:~# sysctl -p
Gruß
gms

Benutzeravatar
bitbieger
Beiträge: 179
Registriert: 23.10.2003 08:26:00
Kontaktdaten:

Beitrag von bitbieger » 11.08.2005 09:55:23

Pischti hat geschrieben:...
hintergrund, ich will eigentlich nur den ordner erstellen - aber mit den selben rechten, wie der originalordner, tmp ist jetzt hier auch nur ein beispiel. bei einem mkdir müsste ich ja erst aufwendig die rechte des originalen ordners auslesen

Code: Alles auswählen

(cd / && tar --no-recursion -cf - tmp) | (cd /mnt/ && tar -xpf -)
cu,
bitbieger

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22360
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von KBDCALLS » 11.08.2005 13:21:37

Damit mount ruhig ist versuch ist mal folgendes in der

Code: Alles auswählen

/etc/syslog.conf

Code: Alles auswählen

kernel.warning;*.err;authpriv.none       /dev/tty10
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

Benutzeravatar
Pischti
Beiträge: 417
Registriert: 20.02.2002 12:54:18
Wohnort: dresden

Beitrag von Pischti » 11.08.2005 14:18:17

per syslog wird bei mir nix auf die konsole geschrieben, bei mir
gehen alle logs in eine db ...
hab da aber was gefunden: http://channel.debian.de/faq/ch-config.html#s-klogdspam

werd das später mal probieren, hab grade kein lnx ...

[edit]
der link ist die lösung ..
gruss pischti
debian stable

Antworten