BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

Systemintegrität überprüfen

Verwendet man freebsd-update zum Aktualisieren eines Systems, so kann auch mit Hilfe von freebsd-update die Integrität der Systemdateien überprüft werden:

# freebsd-update IDS
Looking up update.FreeBSD.org mirrors... 3 mirrors found.
Fetching metadata signature for 8.0-RELEASE from update5.FreeBSD.org... done.
Fetching metadata index... done.
Inspecting system... done.
/.cshrc has SHA256 hash 6c023117f7a92667b56a2a36acc6f8cd4b2de5972dcf44cbfbbc2967d6aa83ef, but should have SHA256 hash e1450d7b3c8b61f305b55792a653a547492b949d315ff7168205bdf279bd2f3e.
/etc/csh.cshrc has SHA256 hash 07f4515289339e203480041f3ff3982f6eb292584cbb164761f52215569b6136, but should have SHA256 hash 84c3dcd7eabd6b0da5077261c98b3dd345a7bd1e34e630921e02445e8d165249.
/etc/group has SHA256 hash d47fb1922b56d37dff6c214fec708bf98fc11e04b735fd9de4693bcf43cdaf19, but should have SHA256 hash a2b26924da4c1fa1007f4c06f8607f07bc909f36112d8d671f95a6126d7b8c15.
/etc/hosts has SHA256 hash 7af8062be560432c3f7fd5f3ceaac70c5fb5a4e8b840b1ad7f8a9c4a86277e8c, but should have SHA256 hash fc7360aff275514c9d437adc3e3a1d7fa94a88e6a2c88804f2287bc302b05fb0.
/etc/manpath.config has SHA256 hash 047f43d8f50eb3d51c5f39416c77ef0dff890cc37582eded7b772c70f018a324, but should have SHA256 hash 1cefa217b837cc940405ef849d6a88a8fb493f34f1b990c87d0b639b636485d4.
/etc/master.passwd has SHA256 hash 90fde15b127e00df91d5f7bb0c76e716b529652b0b513ebc5a896075647c040c, but should have SHA256 hash 212f97df7b05493facc106ed75c17a0131df99b5e656695bce8f07e8cde7ec6a.
/etc/motd has SHA256 hash d996410887344e5d1890959f0f10cfc5362b60c16eb2328428ebc3e0de549298, but should have SHA256 hash ba25bc1d24e50377ebaaa125c2322cf590c238e001c2e11a54d956bc18c4832a.
/etc/ntp.conf has SHA256 hash 15ca2615c6ef84646c973af2e97e34c7589748742657cfe5f7c34814eec1c50c, but should have SHA256 hash 99f129acc512fcd042bcc54f0ee93fed1a06d216b42433328c0adaab83585243.
/etc/passwd has SHA256 hash c74f20892267aec63768790f0ef5e796074724742e58e3782297f568e7f82eed, but should have SHA256 hash 52dfb31101cc03b9065bd20e606cb15e13e194686798250c40c907a64383b27a.
/etc/pwd.db has SHA256 hash 4e73815afdb4b7163b1ae5c211846a9d1e6a3a0a6d4f9a51c48ddbcddc9ff086, but should have SHA256 hash 6d7f65a6482e666dfd0ce892b0dd729aa1adbe6a2da136b73ecba7aaa7a503b7.
/etc/spwd.db has SHA256 hash ad753b14c7846879b467d08dc6868bf970310ea586e83303f4d7c44e6ed5afd9, but should have SHA256 hash ccd36805ad87d19e6ffa86bf2a71714761d37e802891b46ca1d50516cff9b445.
/etc/ssh/ssh_config has SHA256 hash e173a7ffd6d846eee4a4c2f5d4b3444c35f50fc8a03f6278c40aef0a8cbd63eb, but should have SHA256 hash eb8e55d3acbffd4f83681fc5b60d1ae66b69a1d3c04c3d71307a3432cc0ac2ce.
/etc/ttys has SHA256 hash 7343c0427e81844bff6404ac123cefa0c17ea5bb0d38546830ebdfb764212bc1, but should have SHA256 hash 92d4e87e657add80879eb47cb87071a07cbfb723f8044d27219265328a98ef80.
/root has 0700 permissions, but should have 0755 permissions.
/root/.cshrc has SHA256 hash 6c023117f7a92667b56a2a36acc6f8cd4b2de5972dcf44cbfbbc2967d6aa83ef, but should have SHA256 hash e1450d7b3c8b61f305b55792a653a547492b949d315ff7168205bdf279bd2f3e.

Nun kann geprüft werden wieso diese Dateien verändert worden sind. Mehr Informationen zu freebsd-update findet man in der Manpage freebsd-update(8).

 Permalink

Netzwerkdurchsatz aufzeichnen

Mit Hilfe von vnStat kann der Netzwerkdurchsatz eines Rechners aufgezeichnet werden. Im FreeBSD Portbaum findet man vnstat unter net/vnstat:

# cd /usr/ports/net/vnstat && make install clean

Danach kann in der /etc/crontab folgende Zeilen eingetragen werden, damit die Datenbank von vnStat automatisch alle 5 Minuten aktualisiert wird:

# run vnstat update every 5 minutes if installed
*/5 *   * * *   root    if [ -x /usr/local/bin/vnstat ] && [ `ls -l /var/db/vnstat/ | wc -l` -ge 1 ]; then /usr/local/bin/vnstat -u; fi

Nun muss eine Konfigurationsdatei für vnStat angelegt werden. Dazu kann als Basis die Beispielskonfiguration verwendet werden. in der Konfiguration kann zum Beispiel mit Interface die Standardnetzwerkschnittstelle angegeben werden:

# cd /usr/local/etc/
# cp vnstat.conf.sample vnstat.conf

Nun muss das Verzeichnis angelegt werden in dem die Datenbanken abgelegt werden. Danach wird für jede Netzwerkschnittstelle eine Datenbank angelegt. Im folgenden Beispiel wird nur für tun0 eine Dankenbank erstellt:

# mkdir /var/db/vnstat
# vnstat -u -i tun0

Nachdem die Datenbank das erste Mal aktualisiert wurde, können die gespeicherten Informationen abgerufen werden. Wird keine Schnittstelle mit der -i Option angegeben, so wird die Standardschnittstelle aus der Konfiguration genommen:

# vnstat 
Database updated: Sat Jan  9 21:25:00 2010

   tun0 since 09.01.2010

          rx:  95.11 MiB      tx:  5.63 MiB      total:  100.74 MiB

   monthly
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
       Jan '10     95.11 MiB |    5.63 MiB |  100.74 MiB |    1.07 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated       331 MiB |      17 MiB |     348 MiB |

   daily
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
         today     95.11 MiB |    5.63 MiB |  100.74 MiB |   10.70 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated       106 MiB |       5 MiB |     111 MiB |

Mit der -s Option werden die Informationen in kompakter Form angezeigt:

# vnstat -s

                      rx      /      tx      /     total    /   estimated
 tun0:
       Jan '10     95.11 MiB  /    5.63 MiB  /  100.74 MiB  /  348.00 MiB
         today     95.11 MiB  /    5.63 MiB  /  100.74 MiB  /     111 MiB

Wird die -h Option verwendet, so wird der Netzwerkdurchsatz pro Stunde, mit der -w Option der Woche und mit der -m Option des Monats angezeigt:

# vnstat -h
 tun0                                                                     21:25 
  ^                                               r                             
  |                                               r                             
  |                                               r  r                          
  |                                               r  r                          
  |                                               r  r                          
  |                                               r  r                          
  |                                               r  r                          
  |                                               r  r                          
  |                                               r  r  r     r                 
  |                                               r  r  r  r  r                 
 -+---------------------------------------------------------------------------> 
  |  22 23 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21    
                                                                                
 h  rx (KiB)   tx (KiB)      h  rx (KiB)   tx (KiB)      h  rx (KiB)   tx (KiB) 
22          0          0    06          0          0    14     30'404      1'352
23          0          0    07          0          0    15      9'932        814
00          0          0    08          0          0    16      5'997        574
01          0          0    09          0          0    17      7'995        715
02          0          0    10          0          0    18      2'644        650
03          0          0    11          0          0    19        421        176
04          0          0    12          0          0    20          0          0
05          0          0    13     38'000      1'169    21      1'999        311

Mit der -tr Option wird der aktuelle Verkehr einer Netzwerkschnittstelle für 5 Sekunden gemessen. Soll nicht die Standard-Netzwerkschnittstelle verwedent werden, kann mit der -i Option eine alternative Schnittstelle angegeben werden:

# vnstat -tr -i wlan0
128 packets sampled in 5 seconds     
Traffic average for wlan0

      rx        70.40 kbit/s            13 packets/s
      tx        20.80 kbit/s            12 packets/s

Mit der -l Option wird der aktuelle Verkehr einer Schnittstelle angezeigt, bis Ctrl + C gedrückt wird:

# vnstat -l -i wlan0
Monitoring wlan0...    (press CTRL-C to stop)

   rx:       16 kbit/s    15 p/s          tx:       24 kbit/s    18 p/s

Mehr Informationen zu vnStat findet man in der Manpage vnstat(1).

 Permalink

Ziel eines symbolischen Linkes anzeigen

Mit Hilfe von readlink kann das Ziel eines symbolischen Linkes angezeigt werden. Im FreeBSD Portbaum findet man readlink unter sysutils/readlink:

# cd /usr/ports/sysutils/readlink && make install clean

Wird ein symbolischer Link an readlink übergeben, so wird das Ziel des Linkes angezeigt und als Rückgabewert wird 0 zurückgegeben. Ist die übergebene Datei kein symbolischer Link, so wird 1 als Rückgeabewert zurückgegeben:

# ls -l b 
lrwxr-xr-x  1 root  wheel  1  2 Jan 18:29 b@ -> a
# readlink b
a
# echo $?
0
# ls -l c
lrwxr-xr-x  1 root  wheel  14  2 Jan 18:30 c@ -> /usr/home/test
# readlink c
/usr/home/test
# echo $?
0
# ls -l test 
-rw-r--r--  1 beat  wheel  0  2 Jan 18:46 test
# readlink test
# echo $?
1
Comments (1)  Permalink

Fotos auf der Kommandozeile aufbessern

Mit HIlfe von aaphoto lassen sich Fotos auf der Kommandozeile aufbessern, zum Beispiel automatisch die Farben korrigiert. Im FreeBSD Portbaum findet man aaphoto unter graphics/aaphoto:

# cd /usr/ports/graphics/aaphoto && make install clean

Ruft man aaphoto ohne Optionen auf, werden automatisch die Farben des Bildes verbessert und dieses in einer neuen Datei gespeichert:

# ls -l beat.jpg
-rw-r--r--  1 beat  wheel  26641 26 Dez 11:04 beat.jpg
# aaphoto beat.jpg
beat.jpg . . . done
# ls -l beat*
-rw-r--r--  1 beat  wheel  26641 26 Dez 11:04 beat.jpg
-rw-r--r--  1 beat  wheel   8181 26 Dez 11:08 beat_new.jpg

Auch kann das Bild um 90 Grad im Uhrzeigersinn gedreht und um 50% verkleinert werden. Verwendet man zusätzliche Optionen so werden die Farben des Bildes nicht automatisch korrigiert. Mit der -a Option kann die Farbkorrektur wieder aktiviert werden:

# aaphoto -a --rotate90 -r50% beat.jpg
beat.jpg . . . done

Mehr Informationen zu aaphoto erhält man mit der -h Option:

# aaphoto -h
 Permalink

Herausfinden in welchen Verzeichnissen eine Manpage gesucht wird

Mit Hilfe von mapath kann angezeigt werden in welchen Verzeichnissen man(1) nach einer Manpage sucht:

# manpath 
/usr/share/man:/usr/local/man:/usr/share/openssl/man:/usr/local/lib/perl5/5.8.9/man:/usr/local/lib/perl5/5.8.9/perl/man

Konfiguriert werden diese Verzeichnisse in der Datei /etc/manpath.config. Möchte man ein weiteres Verzeichnis mit Manpages hinzufügen, so kann dazu zum Beispiel mit OPTIONAL_MANPATH festgelegt werden:

# ls -d /home/beat/man/*
/home/beat/man/man1
# echo "OPTIONAL_MANPATH        /usr/home/beat/man" >> /etc/manpath.config
# manpath
/usr/share/man:/usr/local/man:/usr/share/openssl/man:/usr/local/lib/perl5/5.8.9/man:/usr/local/lib/perl5/5.8.9/perl/man:/usr/home/beat/man

Auch kann mit Hilfe der Umgebungsvariable MANPATH die globale Konfiguration überschrieben werden:

# setenv MANPATH /home/beat/man
# manpath
(Warning: MANPATH environment variable set)
/home/beat/man

Auf FreeBSD ist manpath standardmässig im Basissystem vorhanden. Mehr Informationen zu manpath findet man in der Manpage manpath(1).

 Permalink

Portmaster mit Unterstützung für Pakete

Mit Hilfe von portmaster könnten installierte Ports aktualisiert werden. Seit der Version 2.12 wird nun auch das Aktualisieren mit Hilfe von Paketen unterstützt. Im FreeBSD Portbaum findet man portmaster unter ports-mgmt/portmaster:

# cd /usr/ports/ports-mgmt/portmaster && make install clean

Mit Hilfe der -PP Option werden die installierten Ports aussschliesslich mit Paketen aktualisiert. Die heruntergeladenen Pakete werden dabei im /usr/ports/packages/portmaster-download/ Verzeichnis gespeichert:

# portmaster -PP pkg_cutleave

===>>> Currently installed version: pkg_cutleaves-20080320
===>>> Port directory: /usr/ports/ports-mgmt/pkg_cutleaves
===>>> Gathering dependency list for ports-mgmt/pkg_cutleaves from ports
===>>> Starting dependency check
===>>> Dependency check complete for ports-mgmt/pkg_cutleaves
===>>> Starting install for ports-mgmt/pkg_cutleaves <<<===

===>>> All dependencies are up to date

===>>> Checking package repository for latest available version
===>>> Creating a backup package for old version pkg_cutleaves-20080320
===>>> Installing package

===>>> Updating dependencies for pkg_cutleaves-20090810 to match installed versions

===>>> Upgrade of pkg_cutleaves-20080320 to pkg_cutleaves-20090810 complete

Möchte man den Server festlegen, von welchem die Pakete heruntergeladen werden, so kann dazu die PACKAGESITE-Umgebungsvariable gesetzt werden. Zum Beispiel in der (t)csh:

# setenv PACKAGESITE http://tinderbox.chruetertee.ch/tb/packages/8-FreeBSD

Verwendet man die -P Option so wird falls vorhanden ein Paket zur Aktualisierung verwendet, wird aber keines gefunden, so wird der Port mit Hilfe des Portbaumes aktualisiert. Im folgenden Beispiel werden alle installierten Ports aktualisiert für welche es eine neuere Version gibt. Falls möglich wird zur Aktualisierung ein Paket verwendet, ist keines vorhanden wir der Port mit Hilfe des Portbaumes kompiliert:

# portmaster -P -a

Findet portmaster ein Paket, welches neuer ist als das Installierte ist, im Portbaum befindet sich allerdings noch eine neuere Version des Portes, kann mit der --packages-if-newer festgelegt werden, dass trotzdem das Paket installiert wird:

# portmaster -P --packages-if-newer nmap

Sollten beim Aktualisieren eines Ports neue Abhängigkeiten für das Kompilieren dieses Portes benötigt werden, können diese mit Hilfe der --packages-build Option als Pakete heruntergeladen und installiert werden.

# portmaster --packages-build screen

Mehr Informationen zu portmaster findet man in der Manpage portmaster(8). Informationen über die zukünftigen Möglichkeiten von portmaster und wie man die Entwicklung  von portmaster unterstützen kann, findet man auf der "portmaster funding proposal"-Webseite.

Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
 Permalink

x86-Prozessorinformationen auslesen

Mit Hilfe von x86info werden Informationen zum Cache, den unterstützten CPU-Funktionen, sowie den Registern und allgemeine Informationen zu den vorhandenen Prozessoren ausgelesen. Im FreeBSD-Portbaum findet man x86info unter sysutils/x86info:

# cd /usr/ports/sysutils/x86info && make install clean

Ruft man x86info mit der -a Option auf, werden alle verfürbaren Informationen zu den vorhandenen Prozessoren angezeigt:

# x86info -a
x86info v1.25.  Dave Jones 2001-2009
Feedback to <davej@redhat.com>.

Found 2 CPUs
MP Table:
#       APIC ID Version State           Family  Model   Step    Flags
#        0       0x14    BSP, usable     6       7       6       0xbfebfbff
#        1       0x14    AP, usable      6       7       6       0xbfebfbff

--------------------------------------------------------------------------
CPU #1
EFamily: 0 EModel: 1 Family: 6 Model: 23 Stepping: 6
CPU Model: Core 2 Duo P8600
Processor name string: Intel(R) Core(TM)2 Duo CPU     T9300  @ 2.50GHz
Type: 0 (Original OEM)  Brand: 0 (Unsupported)
Number of cores per physical package=1
Number of logical processors per socket=2
Number of logical processors per core=2
APIC ID: 0x1    Package: 0  Core: 0   SMT ID 1
eax in: 0x00000000, eax = 0000000a ebx = 756e6547 ecx = 6c65746e edx = 49656e69
eax in: 0x00000001, eax = 00010676 ebx = 01020800 ecx = 0008e3bd edx = bfebfbff
eax in: 0x00000002, eax = 05b0b101 ebx = 005657f0 ecx = 00000000 edx = 2cb4304e
eax in: 0x00000003, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000
eax in: 0x00000004, eax = 04000121 ebx = 01c0003f ecx = 0000003f edx = 00000001
eax in: 0x00000005, eax = 00000040 ebx = 00000040 ecx = 00000003 edx = 03122220
eax in: 0x00000006, eax = 00000003 ebx = 00000002 ecx = 00000001 edx = 00000000
eax in: 0x00000007, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000
eax in: 0x00000008, eax = 00000400 ebx = 00000000 ecx = 00000000 edx = 00000000
eax in: 0x00000009, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000
eax in: 0x0000000a, eax = 07280202 ebx = 00000000 ecx = 00000000 edx = 00000503

eax in: 0x80000000, eax = 80000008 ebx = 00000000 ecx = 00000000 edx = 00000000
eax in: 0x80000001, eax = 00000000 ebx = 00000000 ecx = 00000001 edx = 20100000
eax in: 0x80000002, eax = 65746e49 ebx = 2952286c ecx = 726f4320 edx = 4d542865
eax in: 0x80000003, eax = 44203229 ebx = 43206f75 ecx = 20205550 edx = 54202020
eax in: 0x80000004, eax = 30303339 ebx = 20402020 ecx = 30352e32 edx = 007a4847
eax in: 0x80000005, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000
eax in: 0x80000006, eax = 00000000 ebx = 00000000 ecx = 18008040 edx = 00000000
eax in: 0x80000007, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000
eax in: 0x80000008, eax = 00003024 ebx = 00000000 ecx = 00000000 edx = 00000000

Cache info
 L1 Instruction cache: 32KB, 8-way associative. 64 byte line size.
 L1 Data cache: 32KB, 8-way associative. 64 byte line size.
 L2 cache: 6MB, 24-way set associative, 64-byte line size.
TLB info
 Instruction TLB: 4x 4MB page entries, or 8x 2MB pages entries, 4-way associative
 Instruction TLB: 4K pages, 4-way associative, 128 entries.
 Data TLB: 4MB pages, 4-way associative, 32 entries
 L1 Data TLB: 4KB pages, 4-way set associative, 16 entries
 L1 Data TLB: 4MB pages, 4-way set associative, 16 entries
 Data TLB: 4K pages, 4-way associative, 256 entries.
 64 byte prefetching.
Feature flags:
 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflsh ds acpi mmx fxsr sse sse2 ss ht tm pbe
Extended feature flags:
 sse3 [2] monitor ds-cpl vmx est tm2 ssse3 cx16 xTPR [15] [19]

2.50GHz processor (estimate).

--------------------------------------------------------------------------
CPU #2
EFamily: 0 EModel: 1 Family: 6 Model: 23 Stepping: 6
CPU Model: Core 2 Duo P8600
Processor name string: Intel(R) Core(TM)2 Duo CPU     T9300  @ 2.50GHz
Type: 0 (Original OEM)  Brand: 0 (Unsupported)
Number of cores per physical package=1
Number of logical processors per socket=2
Number of logical processors per core=2
APIC ID: 0x1    Package: 0  Core: 0   SMT ID 1
eax in: 0x00000000, eax = 0000000a ebx = 756e6547 ecx = 6c65746e edx = 49656e69
eax in: 0x00000001, eax = 00010676 ebx = 01020800 ecx = 0008e3bd edx = bfebfbff
eax in: 0x00000002, eax = 05b0b101 ebx = 005657f0 ecx = 00000000 edx = 2cb4304e
eax in: 0x00000003, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000
eax in: 0x00000004, eax = 04000121 ebx = 01c0003f ecx = 0000003f edx = 00000001
eax in: 0x00000005, eax = 00000040 ebx = 00000040 ecx = 00000003 edx = 03122220
eax in: 0x00000006, eax = 00000003 ebx = 00000002 ecx = 00000001 edx = 00000000
eax in: 0x00000007, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000
eax in: 0x00000008, eax = 00000400 ebx = 00000000 ecx = 00000000 edx = 00000000
eax in: 0x00000009, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000
eax in: 0x0000000a, eax = 07280202 ebx = 00000000 ecx = 00000000 edx = 00000503

eax in: 0x80000000, eax = 80000008 ebx = 00000000 ecx = 00000000 edx = 00000000
eax in: 0x80000001, eax = 00000000 ebx = 00000000 ecx = 00000001 edx = 20100000
eax in: 0x80000002, eax = 65746e49 ebx = 2952286c ecx = 726f4320 edx = 4d542865
eax in: 0x80000003, eax = 44203229 ebx = 43206f75 ecx = 20205550 edx = 54202020
eax in: 0x80000004, eax = 30303339 ebx = 20402020 ecx = 30352e32 edx = 007a4847
eax in: 0x80000005, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000
eax in: 0x80000006, eax = 00000000 ebx = 00000000 ecx = 18008040 edx = 00000000
eax in: 0x80000007, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000
eax in: 0x80000008, eax = 00003024 ebx = 00000000 ecx = 00000000 edx = 00000000

Cache info
 L1 Instruction cache: 32KB, 8-way associative. 64 byte line size.
 L1 Data cache: 32KB, 8-way associative. 64 byte line size.
 L2 cache: 6MB, 24-way set associative, 64-byte line size.
TLB info
 Instruction TLB: 4x 4MB page entries, or 8x 2MB pages entries, 4-way associative
 Instruction TLB: 4K pages, 4-way associative, 128 entries.
 Data TLB: 4MB pages, 4-way associative, 32 entries
 L1 Data TLB: 4KB pages, 4-way set associative, 16 entries
 L1 Data TLB: 4MB pages, 4-way set associative, 16 entries
 Data TLB: 4K pages, 4-way associative, 256 entries.
 64 byte prefetching.
Feature flags:
 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflsh ds acpi mmx fxsr sse sse2 ss ht tm pbe
Extended feature flags:
 sse3 [2] monitor ds-cpl vmx est tm2 ssse3 cx16 xTPR [15] [19]

2.50GHz processor (estimate).

Mehr Informationen zu x86info findet man in der Manpage x86info(1).

 Permalink

Identische Dateien löschen

Mit Hilfe von samesame lassen sich Identische Dateien aufspüren und falls gewünscht löschen. Im FreeBSD-Portbaum findet man samesame unter sysutils/samesame:

# cd /usr/ports/sysutils/samesame && make install clean

Im folgenden Beispiel werden mit Hilfe von samefile identische Dateien gefunden und mit Hilfe von samerm jeweils alle bis auf eine der identischen Dateien gelöscht.

# ls -l
total 6
-rw-r--r--  1 test  wheel  8 28 Nov 13:59 a
-rw-r--r--  1 test  wheel  4 28 Nov 13:56 b
-rw-r--r--  1 test  wheel  4 28 Nov 13:58 c
# find . | samefile -i | samerm
# ls -l
total 4
-rw-r--r--  1 test  wheel  8 28 Nov 13:59 a
-rw-r--r--  1 test  wheel  4 28 Nov 13:56 b

Möchte man die Dateien nicht löschen, so kann mit sameln die Datei durch einen Hardlink ersetzt werden:

# ls -1i
16468 a
16469 b
16453 c
# find . | samefile -i | sameln
# ls -1i
16468 a
16469 b
16469 c

Mehr Informationen zu samesame findet man in den Manpages samesame(1), samefile(1) und sameln(1).

Comments (2)  Permalink

Programm mit which finden

Möchte man herausfinden ob sich ein Programm innerhalb eines Verzeichnisses befindet, welches in der PATH-Variable gesetzt ist, so kann dazu which verwendet werden:

# which portmaster
/usr/local/sbin/portmaster
# which bla
bla: Command not found.

Benutzer der csh verwenden dabei eine in der Shell eingebaute Version von which. Verwendet man eine Shell welche which nicht beinhaltet, so kann /usr/bin/which aus dem FreeBSD-Basissystem verwendet werden:

# which which
which: shell built-in command.
# /usr/bin/which which
/usr/bin/which

Zusätzlich zu which kann in der csh auch where verwendet werden, welches den Shell-eigenen und den im Dateisystem gefundenen Befehl anzeigt, sollten beide vorhanden sein:

# where which
which is a shell built-in
/usr/bin/which

Mehr Informationen zu which and where findet man in der Manpage tcsh(1) und which(1).

Related Entries:
Piepston der tcsh deaktivieren
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
 Permalink

Dateien mit Hilfe eines Editors umbenennen

Mit Hilfe von vils lassen sich Dateien mit Hilfe des Standard-Editors umbenennen. Im FreeBSD-Portbaum findet man vils unter sysutils/vils:

# cd /usr/ports/sysutils/vils && make install clean

Zuerst wechselt man in das Verzeichnis in dem die Dateien umbenannt werden sollen und ruft danach vils auf:

# ls -1
datei1
datei2
datei3
datei4
# vils

Im Standard-Editor wird danach eine Liste mit allen Dateien des Verzeichnis angezeigt:

0001 datei1
0002 datei2
0003 datei3
0004 datei4

Diese Liste kann nun angepasst werden:

0001 datei1neu
0002 datei2
0003 datei3test
0004 datei 

Speichert man das Ergebnis und verlässt den Editor werden die Dateien umbenannt:

# ls -1
datei
datei1neu
datei2
datei3test

Mehr Informationen zu vils findet man im Skript selber:

# more /usr/local/bin/vils
 Permalink
Prev Next101-110/325