November, 2007

deb Pakete auflisten

Freitag, November 9th, 2007

Immer wieder bin ich auf der suche nach Paketen:

dpkg --get-selections | less
Er liefert mir alle Pakete die per apt installiert sind und listet sie in der less auf.

Oder wenn man bestimmte Pakete sucht:
dpkg -l "linux-image*"| grep ^ii

Und wenn man wissen will was sich in dem Pakte befindet:
dpkg -L less

Rsync vom Server zum BackupServer

Mittwoch, November 7th, 2007

Zunächst muss ein Schlüsselpaar erstellt werden. Das machen wir mit ssh-keygen

ssh-keygen -b 4096 -t rsa -f rsync

Kein Passfrase eingeben sonst kann man das nicht automatisieren. Abschließend wurden die folgenden Dateien in ~/.ssh/ erstellt.

rsync (ist der private key)
rsync.pub (ist der public key)

Den Public Key auf BackupServer kopieren, damit der lokale Server autorisiert werden kann.

backup@BackupServer:~$ cd /home/backup/.ssh
backup@BackupServer:~/.ssh$ cat rsync.pub >> authorized_keys
backup@BackupServer:~/.ssh$ chmod 0600 authorized_keys

Achtung! Falls schon eine "authorized_keys" Datei existiert nicht überschreiben, sondern anhängen.
Zum Testen und um Akzeptieren des Zertifikates könnt ihr euch per SSH verbinden.

root@server:~$ ssh -i /root/.ssh/rsync backup@BackupServer

Wenn nun die Verbindung direkt aufgebaut wird, ohne die Abfrage eines Passworts, habt ihr alles richtig gemacht.

root@server:~$ rsync -e "ssh -i /root/.ssh/rsync" -avcuz /home/Tux/ ZielServer:/home/Tux/Tuxbackup/

Hier noch eine Übersicht welche Befehle es gibt:

-a Archiv: rekursiv, mit Links und allen Rechten (als das gleich wie: -rlptgoD)
-v Fortschrittsanzeige
-c Checksummen von Dateien vergleichen
-C Unwichtige Dateien ignorieren
-u Update: neue Dateien nicht überschreiben
-H Hardlinks auf dem Ziel synchronisieren
-n Nichts tun, nur zeigen, was getan würde
-e ssh SSH für die Verbindung nutzen
–delete Lokal gelöschte Dateien auch auf dem Ziel entfernen
–modify-window=N Toleranz für Zeitstempel, die Rsync noch als gleich auffasst
-z Zip: Dateien vor dem Übertragen komprimieren (spart Bandbreite, kostet Rechenzeit)

GIP 5

Montag, November 5th, 2007
#include 

using namespace std;

void hw(void)
{
	cout << "Hello wordl!" << endl;
}

void cbv1(double d)
{
	cout << d << endl;	
}

char cbv2 (double d)
{
	if(d >= 0)
	{
		return 'p';
	}
	return 'n';
}
void cbr1(float &f)
{
	f = 12.345;
}

int cube(int l, int b, int h=1)
{
	return l * b * h;
}

int main (void)
{
	/* Aufgabe a) */
	hw();

	/* Aufgabe b) */
	cout << "Wert von a in cbv1 = ";
	cbv1(12.6);

	/* Aufgabe c) */
	double d = 7.1234;
	cout << "Wert von a in cbv1 = ";
	cbv1( d );

	/* Aufgabe d) */
	cout << "Ergebnis von cbv2 mit Parameter -23: " << cbv2 (-23) << endl;;
	cout << "Ergebnis von cbv2 mit Parameter +10: " << cbv2 (10) << endl;;

	/* Aufgabe e) */
	float f=0;
	cout << "Vor dem Aufruf von cbr1: f = " << f << endl;
	cbr1(f);
	cout << "Vor dem Aufruf von cbr1: f = " << f << endl;
	
	/* Aufgabe f) */
	cout << "Daten (L: 10 B: 11 H: 12)" << endl << "Rauminhalt: " << cube( 10, 11, 12 ) << endl;

	cout << "Daten (L: 10 B: 11 H: 1)" << endl << "Flaeche: " << cube( 10, 11 )  << endl;

	return 0;	
}