Autor: User

Partitionsgröße mit Fdisk ändern

Wenn man in Linux die Partiongröße ändern will, muss man die alte Partion löschen und eine neue Partion an legen.

Diese Schritte sind dafür notwendig.

A. Ausgabe der Partionsinformationen
B. Löschen der Partion Nummer #2
C. Neu Partion #2 erstellen
D. Partionen speichern

Mit dem Tool „fdisk“ sind diese Kommandos notwendig.

A. [p] (Print)
B. [d,2] (Delete, Partition #2)
C. [n,p,2,{default},{default}] (New, Primary, Partition #2, First sector, Last sector)
D. [w] (Write)

Die Ausgabe von „fdisk“ sieht so aus.

# sudo fdisk /dev/mmcblk0

Welcome to fdisk (util-linux 2.26.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
 
 
Command (m for help): p
Disk /dev/mmcblk0: 29,3 GiB, 31440502784 bytes, 61407232 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xf9315c16
 
Device         Boot  Start     End Sectors  Size Id Type
/dev/mmcblk0p1 *      2048  133119  131072   64M  c W95 FAT32 (LBA)
/dev/mmcblk0p2      133120 7679999 7546880  3,6G 83 Linux
 
Command (m for help): d
Partition number (1,2, default 2):
 
Partition 2 has been deleted.
 
Command (m for help): n
Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p):
 
Using default response p.
Partition number (2-4, default 2):
First sector (133120-61407231, default 133120):
Last sector, +sectors or +size{K,M,G,T,P} (133120-61407231, default 61407231):
 
Created a new partition 2 of type 'Linux' and of size 29,2 GiB.
 
Command (m for help): p
Disk /dev/mmcblk0: 29,3 GiB, 31440502784 bytes, 61407232 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xf9315c16
 
Device         Boot  Start      End  Sectors  Size Id Type
/dev/mmcblk0p1 *      2048   133119   131072   64M  c W95 FAT32 (LBA)
/dev/mmcblk0p2      133120 61407231 61274112 29,2G 83 Linux
 
Command (m for help): w
The partition table has been altered.

Jetzt ist ein Reboot notwendig.

# sudo reboot

Das Dateisystem ext4 kann im Betrieb vergrössert werden.

# sudo apt-get install e2fsprogs

# sudo resize2fs -p /dev/mmcblk0p2

Bildbearbeitung (Größen, Format) in Linux

Für die Bildbearbeitung in Linux gibt es das Programm „Imagemagick“.

sudo apt-get install imagemagick

Konvertieren von einem Bildformat in ein anderes Bildformat. Optional kann man die Qualität von 95% an geben.

convert -quality 95 source.png dest.jpg

Die Auflösung von Bildern kann man auch ändern auf einen Fix-Wert von 200×100 Pixeln. Mit einem Ausrufezeichen kann man die Werte erzwingen.

convert -resize 200×100! source.jpg dest.jpg

Will man nur den Horizont auf 200 Pixel oder die Vertikale auf 100 Pixel ändern, so kann man den jeweils anderen Wert weg lassen. Der jeweils andere Wert wird an den Seitenverhältnissen von dem Bild errechnet.

convert -resize 200 source.jpg dest.jpg
convert -resize ×100 source.jpg dest.jpg

Auch die Angabe von Prozent ist möglich.

convert -resize 50% source.jpg dest.jpg

Ein Bild zu drehen ist auch möglich.

convert -rotate 90 source.jpg dest.jpg

Es gibt auch Bilddefekte, welche man anwenden kann.

convert -charcoal 2 source.jpg dest.jpg

Will man viele Dateien umwandeln, kann man sich ein Shell Script erstellen.

for file in *.jpg; do convert $file -resize 50% low-$file; done

Update von MySQL image in Docker

Wir wollen in Docker ein MySQL container auf die letzte Verion updaten. Wichtig dafür ist, das unsere Daten nicht in dem Container gespeichert werden, sondern auf dem Host im Verzeichnis /my/data/

1. Letzte MySQL Version hinzufügen

docker pull mysql:latest

2. Container stoppen

docker stop mysql1

3. Container löschen

docker rm mysql1

4. Neuen Container erstellen

docker run --name=mysql1 --restart=always -e MYSQL_ROOT_PASSWORD=mypwd -v /my/data:/var/lib/mysql -d mysql

Will man sich mit dem Container verbinden, dann verwendet man…

docker exec -it mysql1 bash

…oder man öffnet das MySQL Kommando.

docker exec -it mysql1 mysql -u root -p'mypwd'

Backup aller Datenbanken erstellen.

docker exec mysql1 sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' | gzip > /home/user/all-databases.sql.gz

MySQL im Docker HUB

XML SOAP Request senden

Wer einen WebService verwendet, muß nicht immer gleich einen eigenen Client entwickeln. Es ist auch möglich SOAP Request mit Tools zu senden. In diesem Beispiel wird ein WebService zum Löschen von Nachrichten angesprochen.

Zu erst erstellen Datei mit dem XML SOAP Request.

vim soap_request.xml

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:removeNachricht xmlns:ns1="http://exposed.storage.service.de/"
<arg0>4860</arg0>
</ns1:removeNachricht>
</soap:Body>
</soap:Envelope>

Mit dem Tool curl senden wir einen HTTP Post Request, als HTTP Header wird die Methode „removeNachricht“ von dem WebService gesendet.

curl -H "Content-Type: text/xml; charset=utf-8" -H "SOAPAction: removeNachricht" -d @soap_request.xml -X POST http://localhost:7010/soa-infra/services/StorageService/StorageWebService

Wenn wir eine Liste von Nachrichten löschen wollen, können wir diese Shell Script verwenden. Die NachrichtenID werden in der Datei „list.txt“ gespeichert. Die SOAP Datei wird immer wieder kopiert und in der Datei die ID ersetzt.

#!/bin/sh
URL=http://localhost:7010/soa-infra/services/StorageService/StorageWebService
 
cat list.txt | while read ID
do
 echo "Delete Nachricht: ${ID}"
 cp soap_request.xml.org soap_request.xml
 sed -i s/##NACHRICHT_ID##/${ID}/g soap_request.xml
 curl \
  -H "Content-Type: text/xml; charset=utf-8" \
  -H "SOAPAction: removeNachricht" \
  -d @soap_request.xml -X POST ${URL}
 sleep 2
done

Große Dateien teilen und übertragen

Wenn man eine große Datei über das Internet übertragen will, kann das lange dauern. Eine Unterbrechung der Netzwerkverbindung kann ein Problem dar stellen. Besser ist es, die Datei zu erst zu packen und in kleine Teile zu trennen. Dann kann man diese kleinen Dateien einzeln übertragen und wieder zusammen setzten.

0. 500MB Testdatei erstellen

dd if=/dev/urandom of=myfile.out bs=1M count=500

1. Packen und teilen

gzip -c myfile.out | split -b 20M - myfile.gz_

2. Übertragen

rsync -avzP myfile.gz_* -e ssh user@hostname:/tmp/

3. Zusammensetzen

cat myfile.gz_* | gunzip -c > myfile.out

In Windows kann man die Dateien zusammen kopieren.

copy /b file1 + file2 + file3 + file4 filetogether

Monitoring für das Terminal und Konsole

Heute möchte ich einige nützliche Tools für das Realtime-Monitoring in der Text-Console vorstellen. Die häufisten Fragen sind die Auslastung der CPU, Festplatte und des Netzwerk. Dafür gibt es folgende Tools.

htop – CPU / Auslastung / Prozesse Monitoring
iotop – Input/Output HDD Monitoring
iftop – Netzwerk Monitoring

sudo apt-get install htop iotop iftop

Logrotate

Mit Hilfe von Logrotate werden die Log-Datien aus dem Verzeichnis /var/log/ gepackt.

Im Verzeichnis /etc/cron.daily/logrotate ist ein Script gespeichert, welches Logrotate jeden Tag startet. Die Einstellung für Logrotate liegen in der Konfiguration /etc/logrotate.conf gespeichert.

sudo vim /etc/logrotate.d/dpkg

/var/log/dpkg.log {
  monthly                   # Monatlich
  rotate 12                 # Behalte 12 Stück
  compress                  # Komprimiert
  delaycompress             # Komprimiert nach dem verschieben
  missingok                 # Es ist OK, wenn kein Log da ist.
  notifempty                # Leere Dateien werden nicht verschoben
  create 644 root root      # Rechte ändern
}

Gepackte Logdateien ansehen

Log-Dateien im Verzeichnis /var/log/ werden per Log-Rotate nach einem Tag mit GNU ZIP gepackt. Will man sich den Inhalt ansehen, gibt es praktische Tools.

zless /var/log/syslog.1.gz
zcat /var/log/syslog.1.gz
zgrep "failed" /var/log/syslog.1.gz

NetworkManager entfernen

Wenn man vom NetworkManager zurück zu Network wecheln will, sind drei Schritt aus zu führen.

sudo service NetworkManager stop
sudo service network start
sudo apt-get remove NetworkManager

Erstellen Sie auch die Konfiguration für Network.

sudo vim /etc/network/interfaces

auto lo
iface lo inet loopback
 
auto eth0
iface eth0 inet dhcp

Copyright © 2024 Weiter.info

Theme von Anders Norén↑ ↑