Kategori Computer

In einer manpage nach einer Option suchen

Mittwoch, September 14th, 2011

Heute suchen wir in einer manpage ein Option die -w heißt. Um danach suchen zu können habe ich folgende möglich.

/^[ ^I]+-w
Das ^I wird durch strg + i erzeugt.

Wie liest man den regex jetzt:
Erst mal das / zum suchen. Dann ein ^ für alles was am anfang mit: [ ^I] einem Tabulator begint, + danach kommt -w die Option die ich suche.

SSH agent eines andren Users

Donnerstag, September 1st, 2011

Heute bedien wir uns an einem SSH AGENT eines andren Users.

So sieht die ausgabe bei einem User aus.
user@pc:~$ env | grep SSH
SSH_AGENT_PID=1719
SSH_AUTH_SOCK=/tmp/keyring-AyZCBd/ssh

Stellen wir uns vor, wir haben uns per SSH zugang zum dem Rechner des Users gemacht, und wissen das er gerade ein gnome-panel hat. Es kann natürlich auch eine andere pid des Users benützt werden.

root@pc:~# cat /proc/$(pidof gnome-panel)/environ | xargs -0n1 echo | grep SSH
SSH_AGENT_PID=1719
SSH_AUTH_SOCK=/tmp/keyring-AyZCBd/ssh

root@pc:~# SSH_AUTH_SOCK=/tmp/keyring-AyZCBd/ssh ssh user@chr.istoph.de

Nun kann eine Verbindung mit dem agent des Users aufgebaut werden.

root die Schreibrechte entziehen

Montag, August 22nd, 2011

Auf einem ext2/ext3/ext4 basierende Dateisystem kann man root die Schreibrechte für einzelne Dateien entziehen.

Nötig war das für meinen Router der am externen Netz eine per DHCP zugewiesene IP bekommt und damit immer die /etc/resolv.conf überschreiben hat. Da ich aber auf dem Router einen bind9 laufen lasse, sollten die Lokalen DNS anfragen an die 127.0.0.1 weitergeleitet werden.

chattr +i /etc/resolv.conf

Um das ganze wieder rückgängig zu machen verwendet man die Option -i.

Quelle: wiki.ubuntuusers.de

mdadm: /dev/md0 assembled from 2 drives – not enough to start the array

Mittwoch, August 3rd, 2011

Beim starten des md Raid waren 2 Platten beim Starten nicht hochgekommen.

# mdadm --stop /dev/md0
mdadm: stopped /dev/md0
# mdadm --assemble /dev/md0 /dev/sda2 /dev/sdb2 /dev/sdc2 /dev/sdd2
mdadm: cannot open device /dev/sdb2: Device or resource busy
mdadm: /dev/sdb2 has no superblock - assembly aborted

Sie wurden bereits benutzt. Allerdings nicht von eine Userspace Programm / Mount wie fuser "nicht anzeigt".
# fuser -v /dev/sdb2

An dieser Stelle haben wir vermutet das es sich um ein Fake Raid handelt. Also mal einen Blick in die device mapper blockdevices werfen...
# dmsetup table
isw_ddjcbgeaib_Volume12: 0 1875395970 linear 252:0 78124095
isw_ddjcbgeaib_Volume11: 0 78124032 linear 252:0 63
isw_ddjcbgeaib_Volume1: 0 3907039744 striped 2 256 8:16 0 8:48 0

# ls -l /dev/sdb
brw-rw---- 1 root disk 8, 16 2011-08-03 23:32 /dev/sdb

In der Tat /dev/sdb wird von device mapper verwendet.

Um das Fake Raid aufzulösen haben wir die brachial Methode genommen. Hier wird mit dem Devicemapper alle Einstellungen Deaktiviert. Somit sind die platten wieder freigegeben.

# dmsetup remove_all
# dmsetup table
No devices found

Anschießend konnte das md Software Raid wieder ordentlich gestartet werden
# mdadm --assemble /dev/md0 /dev/sda2 /dev/sdb2 /dev/sdc2 /dev/sdd2
mdadm: /dev/md0 has been started with 4 drives.

Im Endeffekt hat auf die Platten ein "Facke Raid" mittels dmraid zugegriffen. Was auch erklärt warum die "Partitionen für den Kernel verschwunden" waren.

apt-get autoremove dmraid

Partitionen für den Kernel verschwunden

Mittwoch, August 3rd, 2011

Partitionen für den Kernel Verschwunden
Sowohl mit partx als auch mit fdisk -l und anderen Tools konnte man die Partitionen der Platte sehen.
# partx -l /dev/sdb
# 1: 63- 78124094 ( 78124032 sectors, 39999 MB)
# 2: 78124095-1953520064 (1875395970 sectors, 960202 MB)
# 3: 0- -1 ( 0 sectors, 0 MB)
# 4: 0- -1 ( 0 sectors, 0 MB)

Leider Tauchten sie aber nicht im /sys auf.

# tree /sys/ | grep sdb
│   ├── sdb -> ../devices/pci0000:00/0000:00:1f.2/host2/target2:0:1/2:0:1:0/block/sdb
│   │   ├── sdb -> ../../devices/pci0000:00/0000:00:1f.2/host2/target2:0:1/2:0:1:0/block/sdb
│   │   ├── 8:16 -> ../../devices/pci0000:00/0000:00:1f.2/host2/target2:0:1/2:0:1:0/block/sdb
│   │   │   │   │   │   │   └── sdb
│   │   │   │   ├── sdb -> ../../../../pci0000:00/0000:00:1f.2/host2/target2:0:1/2:0:1:0/block/sdb

Nach dem wir partprobe ausgeführt haben waren die Platten wieder da.
#partprobe

Was für ein Tag…

Montag, August 1st, 2011

Was für ein Anstrengender Tag. Nach meiner Mittagspause schickte mich mein Chef mit 1200€ zum Apple Shop und sagte ich müsse einen Mac Mini und ein iPad2 kaufen.

Platten über die Labels mounten

Mittwoch, Juli 27th, 2011

Um ls -al /dev/disk/*/ besser zu visualisieren kann tree /dev/disk nutzen.


tree /dev/disk/
/dev/disk/
├── by-id
│   ├── md-uuid-b85d697e:6cd77eb1:b1236bdc:f76d0236 -> ../../md0
│   ├── scsi-1AMCC_9VS991WE000000000000 -> ../../sdd
│   ├── scsi-1AMCC_9VS991WE000000000000-part1 -> ../../sdd1
│   ├── scsi-1AMCC_9VS992WE000000000000 -> ../../sda
│   ├── scsi-1AMCC_9VS992WE000000000000-part1 -> ../../sda1
│   ├── scsi-1AMCC_9VS993WE000000000000 -> ../../sdc
│   ├── scsi-1AMCC_9VS993WE000000000000-part1 -> ../../sdc1
│   ├── scsi-1AMCC_9VS994WE000000000000 -> ../../sdb
│   └── scsi-1AMCC_9VS994WE000000000000-part1 -> ../../sdb1
├── by-path
│   ├── pci-0000:01:03.0-scsi-0:0:0:0 -> ../../sda
│   ├── pci-0000:01:03.0-scsi-0:0:0:0-part1 -> ../../sda1
│   ├── pci-0000:01:03.0-scsi-0:0:1:0 -> ../../sdb
│   ├── pci-0000:01:03.0-scsi-0:0:1:0-part1 -> ../../sdb1
│   ├── pci-0000:01:03.0-scsi-0:0:2:0 -> ../../sdc
│   ├── pci-0000:01:03.0-scsi-0:0:2:0-part1 -> ../../sdc1
│   ├── pci-0000:01:03.0-scsi-0:0:3:0 -> ../../sdd
│   └── pci-0000:01:03.0-scsi-0:0:3:0-part1 -> ../../sdd1
└── by-uuid
└── 178053d2-17f7-4029-ba90-8cb2bba58954 -> ../../md0

Festplatten Kapazität

Freitag, Juli 15th, 2011

Ich war heute eine Festplatte für das Windows System meine Freundin kaufen. Parallel dazu habe ich auch mal bei der Wikipedia nach Festplatten Kapazität und Windows geschaut. Dabei sind mir zwei Grafiken aufgefallen. Alls ich Sie mit Gimp übereinandergelegt habe ist mir aufgefallen das die Festplattenhersteller mit jeder größeren Windows release einen Sprung gemacht haben. Ein Schelm der gutes dabei denkt.

[UPDATE]
Spasses halber habe ich auch die Kernel Entwicklungsversionen da zugefügt. Und siehe da. Das passt auch...

Quelle:
http://de.wikipedia.org/w/index.php?title=Datei:Festplatten_kapazitaet.svg&filetimestamp=20101124153539
http://de.wikipedia.org/wiki/Windows#Produktlinien
http://de.wikipedia.org/wiki/Linux_%28Kernel%29#Versionen_und_Versionsgeschichte

USB Pering

Donnerstag, Juli 14th, 2011

Was machen wir wohl hier...

... das Notebook laden wir schon mal nicht über USB.

Ein Upstart Job erstellen

Montag, Juli 11th, 2011

Heute erstellen wir uns mal einen Upstart Job.

/etc/init/test.conf

description	"test package"
author		"Christoph Hueffelmann <chr@istoph.de>"

start on runlevel 5
stop on runlevel 0

respawn
expect fork

exec /usr/bin/test

ln -s /lib/init/upstart-job /etc/init.d/test

und schon läuft das program test mit
services test start

Um das Upstart Script in meinem deb zu integrieren muss man die Datei nur ins Debian Verzeichnis kopieren.
cp /etc/init/test.conf debian/test.upstart

emerge dig

Donnerstag, Juni 30th, 2011

Diesmal war ich auf der suche nach dig gefunden habe ich es inemerge -av net-dns/bind-tools enthalten sind auch folgende tools: dig, nslookup, host, nsupdate, dnssec-keygen

Ubuntu ohne nerviges sudo Passwort

Mittwoch, Juni 29th, 2011

Das sudo mit dem Passwort des Nutzer Root rechte erlangt war schon öfters ein Thema, da nutzer oft schlecht mit ihren Passwörtern umgehen. Ich hab das ganze dann mal auf die Spitze getrieben und für alle User die sudo rechte haben (in der gruppe admin sind) sudo ohne Passwort erlaubt.

Dafür habe ich in der /etc/sudoers die Option nopasswod hinzugefügt.
%admin ALL=(ALL) NOPASSWD: ALL

firefox-5.0-rc1

Mittwoch, Juni 29th, 2011

Ich habe gerade in meine Gentoo chroot dein firefox-5.0-rc1 emergt, läuft tatsächlich alles tadellos und auch meine Plugins wie firebug und xmargs. Das liegt wohl daran das zwischen 4 und 5 kein wirklich großer unterschied ist.

init-early.sh

Dienstag, Juni 28th, 2011

Nach dem Aufsätzen eines gentoo hing der Kernel beim ersten start bei init-early.sh. Also wieder livecd oder ähnliches Booten und unter /dev Folgendes ausführen:

cd /mnt/gentoo/dev
rm null
mknod --mode=600 console c 5 1
mknod --mode=666 null c 1 3
mknod --mode=666 zero c 1 5

lsusb und lspci unter gentoo

Dienstag, Juni 28th, 2011

emerge -av usbutils pciutils

zabbix_agentd.conf anpassen

Montag, Juni 27th, 2011

Da nach der Installation von Zabbix die /etc/zabbix/zabbix_agentd.conf angepasst werden muss, habe ich mit sed die einzelnen Konfigurationen verändert. Also localhost gengen meinen Server getauscht und die Variabel Hostname gegen die $HOST getauscht.

apt-get update; apt-get install zabbix-agent --assume-yes;
sed 's/Server=localhost/Server=zabbix.caix.de/g' /etc/zabbix/zabbix_agentd.conf | sed 's/Hostname=localhost/Hostname='$HOST'/g' > /etc/zabbix/.zabbix_agentd.conf; mv /etc/zabbix/.zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf; /etc/init.d/zabbix-agent restart;

rionice

Mittwoch, Juni 15th, 2011

Um rekursiv ionice zu vererben haben wir mal eben ein rionice geschrieben.

#!/bin/bash
 
ionice -c 3 -p $(pstree -p $1 | tr "(" "\n" | cut -d ")" -f 1 | egrep "^[0-9]+\$")
 
exit 0

Um es aufzurufen muss man die PID des Mutterprozesses rionice übergeben. Dies macht man am besten mit ps -xf. Dann übergibt man rionice 1234.

Nameserver not found in database

Montag, Juni 13th, 2011

Beim Hetzner Domain Robot wollte ich alle meine Domains auf einen neuen Nameserver umstellen. Das klappte bei allen Domains bis auf den ORG Domains. Da trat folgende Fehlermeldung auf:

status: failed
error: ErrOper005-004
error: ErrDOps007-022 - ErrNsvr004-003 - Nameserver not found in database
error: : ns01.caix.de
error: ErrDOps007-022 - ErrNsvr004-003 - Nameserver not found in database
error: : ns03.caix.de
error: ErrDOps007-026 - Same settings, no modifications were made
error: ErrDOps006-001 -

ROBOT: ORG

Uhrasche für "Nameserver not found in database" war das man unter DNS-Einträge -> Registrierte Nameserver -> die Nameserver mit den IPs Hinzufügen muss.

Google Contacts in Thunderbird einbinden

Sonntag, Juni 5th, 2011

Um die E-Mail Adressen von Google Contacts in meinem Mail Programm Thunderbird nutzen zu können muss man zwangsläufig ein Plugin installieren. Ich weiß nicht warum Thunderbid das mit dem Plugin installieren nicht wie Firefox dierckt über das anklicken kann, leider muss man das Plugin erst Downloaden und dann über Extras -> Add-ons -> Installieren... die hinzufügen.

Gerade und ungerade Cron Einträge

Mittwoch, Juni 1st, 2011

da ich ein Programm testen musst ob es ordentlich startet und sich wieder beendet, habe ich die Corn so eingestellt das sie jede gerade minute an und ungerade minute wieder aus geht. Da man das mit cron nicht diereckt abbilden kann hat sleep hälfen müssen.

*/2 * * * * /etc/init.d/programm start
*/2 * * * * sleep 60; /etc/init.d/programm stop