Seiten:  [1]   
								 | 
								  | 
							 
						 
					 | 
				 
			 
		 |   
		
		
			
				
					
						
							
								  
								 Autor
							 | 
							
								 Thema: findtmnt - der bessere weg um Dateisysteme zu finden  (Gelesen 1335 mal)
							 | 
						 
					 
				 | 
			 
		 
			
				
					
					
						
							
								
									
										
											Sebastian 
					
						
						YaBB God 
						     
  
						  Offline
  
						
						Einträge: 805 
						
  
  
						 
						     
						 
					
										 | 
										
											
												
													  | 
													
														findtmnt - der bessere weg um Dateisysteme zu finden 
														«  am: 08. Januar 2023, 18:54:43 »
													 | 
													
														
													 | 
												 
											 
											 
											Viele alte Linux Hasen kennen den Befehl mount.
  Dieser wird häufig nicht nur zum mounten von Dateisystemen verwendet, sondern auch oft, um eine Auflistung der momentan gemounteten Dateisysteme zu bekommen. Diese Auflistung wird dann auch häufig noch mit grep gefiltert. Dabei wissen bestimmt viele nicht, dass mount die Auflistung der gemounteten Dateisysteme nur aus Kompatibilitätsgründen noch auflistet:
  MOUNT(8)
 ... Listing the mounts        The listing mode is maintained for backward compatibility only.
         For more robust and customizable output use findmnt(8), especially in your scripts. Note that control characters in the mountpoint name are replaced with        '?'. ...
  |  
  |  
 
  Diesen Job übernimmt heutzutage das viel besseres Tool, um Dateisysteme ausfindig zu machen findmnt.
  Es listet zum einen die eingehängten Dateisysteme viel besser lesbar in einer Baumstruktur auf, und zum  anderen bietet es gleich Filter Funktionen um bestimmte Dateisysteme zu suchen gleich mit an, so das ein grep damit überflüssig wird.
  Es folgen ein paar Beispiele. Zum besseren Verständnis verwende ich die langen Optionen, diese sind häufig auch nur Optional anzugeben die genaue Syntax entnimmt bitte dem Handbuch FINDMNT(8):
  Zeigt die Gerätedatei an, dass unter / eingehängt ist:
  $ findmnt --target / TARGET SOURCE                 FSTYPE OPTIONS /      /dev/mapper/vg0-lvroot ext4   rw,noatime
  |  
  |  
 
  Umgekehrt, unter welchem Verzeichnis das Dateisystem eingehängt wurde:
 
  $ findmnt --source /dev/mapper/vg0-lvroot  TARGET SOURCE                 FSTYPE OPTIONS /      /dev/mapper/vg0-lvroot ext4   rw,noatime
  |  
  |  
 
  Listet nur Read Only Dateisysteme auf:
 
  $ findmnt --options ro TARGET                                              SOURCE FSTYPE OPTIONS /run/credentials/systemd-sysctl.service             none   ramfs  ro,nosuid,nodev,noexec,relatime,mode=700 /run/credentials/systemd-tmpfiles-setup-dev.service none   ramfs  ro,nosuid,nodev,noexec,relatime,mode=700 /run/credentials/systemd-tmpfiles-setup.service     none   ramfs  ro,nosuid,nodev,noexec,relatime,mode=700
  |  
  |  
  Der Option --options kann auch eine Komma separierte Liste mitgegeben werden, um den Filter auszuweiten.
 
  findmnt --options ro,noexec,mode=755 # etc.
  |  
  |  
 
  Suche nach Dateisystemen eines bestimmten Typen:
 
  $ findmnt --types ext4 TARGET  SOURCE                 FSTYPE OPTIONS /       /dev/mapper/vg0-lvroot ext4   rw,noatime └─/home /dev/mapper/vg0-lvhome ext4   rw,noatime
  |  
  |  
  Inventiert die Suche nach einem Dateisystem, Beispiel Listet alle auf bis auf swap Dateisysteme:
 
  $ findmnt --types swap --invert
  |  
  |  
  Listet die Einträge in der /etc/fstab auf.
 
  $ findmnt --fstab  TARGET SOURCE                                    FSTYPE OPTIONS /      UUID=333621d0-0a8b-4682-aa5a-9332316f7d0e ext4   defaults,noatime /home  UUID=b0351c7c-e128-4287-8201-c227c12fd3d4 ext4   defaults,noatime /tmp   tmpfs                                     tmpfs  defaults,noatime,mode=1777 none   /swapfile                                 swap   defaults
  |  
  |  
  Lösst alle Bezeichnungen wie UUIDs, Labels etc. zu ihren Gerätedateien auf. Lässt sich auch gut verwenden um seine fstab zu konvertieren.
 
  $ findmnt --fstab --evaluate  TARGET SOURCE                 FSTYPE OPTIONS /      /dev/mapper/vg0-lvroot ext4   defaults,noatime /home  /dev/mapper/vg0-lvhome ext4   defaults,noatime /tmp   tmpfs                  tmpfs  defaults,noatime,mode=1777 none   /swapfile              swap   defaults
  |  
  |  
  Sollen Abstände in der Tabelle nicht zu groß sein, z.B. um die Zeilen in einem Script besser verarbeiten zu können, kann man die Option --raw verwenden, dann werden die Felder mit nur einem Leerzeichen seperatisiert.
  Und zu guter Letzt kommen wir zu den Optionen, die grep komplett überflüssig machen:
 
  $ findmnt --type ext4 --noheadings --output SOURCE  /dev/mapper/vg0-lvroot /dev/mapper/vg0-lvhome
  |  
  |  
  Es war die rede von --noheadings und --output. Das zum einen die Überschriften entfernt und zum anderen nur angegebe Spalten/Felder anzeigt.
 
  Und wenn das nicht schon gut genug ist um wahr zu sein, legt findmnt noch einen drauf. Es unterstützt nähmlich noch polling.
  Ja genau, es kann die Datei /proc/self/mountinfo auf Veränderungen überwachen und sich zu Wort melden, wenn eine bestimmte Aktion eintritt:
  Wartet bis ein Mount unter /mnt stattfindet, und gibt dann das Feld SOURCE aus
  $ findmnt --target /mnt --poll=mount --output SOURCE --noheadings --first-only
  |  
  |  
  In einem Skript so eingesetzt, sorgt es dafür, dass, dass Skript an der Stelle erst einmal nicht weiterläuft bis die Aktion stattgefunden hat. Auf diese weiße kann man sich eine Schleife in seinem Skript und Systemressourcen sparen.
  findmnt kennt dabei verschiedene poll Aktionen
 
 
 -  mount
  -  unmount
  -  remount
  -  move
  
 
  Zudem kann man mit
 
 
  Steuern wie lange die /proc/self/mountinfo überwacht werden soll.
  Hoffe dem ein oder anderen, konnte ich mit diesem Tipp bzw. Ideen, seine Skripte ein wenig Optimieren.
  LG Sebastian
										 | 
									 
										
											
												
													| « Letzte Änderung: 08. Januar 2023, 19:02:32 von Sebastian » | 
													
														
															
															  Gespeichert
														
													 | 
												 
											 
											 Wo die digitale Kultur blüht, nutzen Angreifer Emotionen, Gewohnheiten und Markenbindung aus. Der Schutz beginnt nicht mit Technik, sondern mit Bewusstsein. Wer sich informiert, vorsichtig klickt und sichere Tools nutzt, kann auch unbeschwert an der Digitalkultur teilnehmen.
											
										 | 
									 
								 
							 | 
						 
					 
				 | 
			 
			
				
					
					
						
							
								
									
										
											Andreas 
					
						
						Administrator 
						     
  
						  Offline
  
						
						Einträge: 1547 
						
  
  
						Linux von Innen 
						     
						 
					
										 | 
										
											
												
													  | 
													
														Re:findtmnt - der bessere weg um Dateisysteme zu finden 
														« Antwort #1 am: 09. Januar 2023, 07:30:26 »
													 | 
													
														
													 | 
												 
											 
											 
											... das wusste auch ich noch nicht - DANKE!
  LG Andreas
										 | 
									 
										
											
												
													 | 
													
														
															
															  Gespeichert
														
													 | 
												 
											 
											 Wissen ist das einzige Gut, das mehr wird, wenn man es teilt - wenn es Menschen gibt, die es teilen, und es Menschen gibt, die bereit sind, dieses Geschenk auch mit eigenem Einsatz anzunehmen.
 
  Freiheit zu erkämpfen reicht nicht. Man muss sie auch verteidigen.
 
  Ohne IT-Kompetenz ist man heutzutage ein willkommenes Opfer und Spielball anderer, egal, welches System oder Gerät man nutzt. Nur Wissen schützt vor Schaden!
											
										 | 
									 
								 
							 | 
						 
					 
				 | 
			 
		 
		
		
			
				
					
						
							
								
									Seiten:  [1]   
								 | 
								
									  
								 | 
							 
						 
					 | 
				 
			 
		 |   
		                 | 
               
             
           | 
         
       
     |