Ganz kurz und knapp…
1 2 3 4 |
# Nur anhalten docker stop $(docker ps -a -q) # Löschen docker rm $(docker ps -a -q) |
there is no place like 127.0.0.1…
Ganz kurz und knapp…
1 2 3 4 |
# Nur anhalten docker stop $(docker ps -a -q) # Löschen docker rm $(docker ps -a -q) |
Auf Grund des täglichen Wahnsinns im Beruf, werden jetzt auch einige Excel Beiträge folgen. Man(n) kann sich ja nicht alles merken.
Die Excel Regel an sich kurz beschrieben. $D1 das Feld wo der Wert steht, „Test“ der Wert an sich, geht auch mit anderen Formeln, z.B. heute().
1 2 3 |
=$D1="Test" =$D1=heute() |
In der heutigen Zeit bereiten Server die über eine IPv4 und IPv6 Adresse erreichbar sind, manchmal Probleme. Deshalb kann es nützlich sein, wenn man die IPv6 Adresse eines Server deaktiviert.
Bei Ubuntu 18.04 Bionic geht das wie folgt.
Man legt die Datei /etc/sysctl.d/01-disable-ipv6.conf mit dem folgenden Inhalt an und startet den Server hinterher neu.
1 |
nano /etc/sysctl.d/01-disable-ipv6.conf |
1 2 3 |
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1 |
Unter Debian gibt es viele einfache Möglichkeiten, leere Ordner innerhalb eines Pfades zu suchen und zu löschen. Eine Möglichkeit dazu lautet:
1 |
find [PFAD] -type d -empty -delete |
Wer erstmal nur gucken möchte und NICHT gleich löschen, nimmt:
1 |
find [PFAD] -type d -empty |
Erklärung:
1 2 3 4 5 |
find # Befehl [PFAD] # Pfad zum Ordner oder . für den aktuellen -type d # Zu suchende Typ -> Ordner -empty # Leere Inhalte / Ordner -delete # Auszuführende Aktion -> löschen |
Ein kleines Update zur farbigen Shell bzw. bunteres Terminal. Es geht mir nicht mehr um das farbige besser erkennbare sondern um gewisse Komfortfunktionen. Im Grund geht es um zsh und die Erweiterung Oh My ZSH!.
Screenshots gibt es hier zuhauf.
Fangen wir mit der Installation an.
1 |
apt install zsh |
Bzw. wer es von Hand kompilieren möchte… -> github.com/robbyrussell/oh-my-zsh/wiki/Installing-ZSH
Gefolgt von der Oh My ZSH! Installation
1 2 3 4 |
# curl $ sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" # wget $ sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)" |
Hier noch ein kurzes Video, falls mal der richtige Befehl nicht einfällt… 😉
Ich habe das Script noch etwas aufgebohrt und mit einer „proper“ englischen Beschreibung versehen! 😉
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
#!/bin/bash # file: pdf_compress.sh # creator: c0by # description: small bash script for pdf shrink. please backup your files. all files will be overwritten, there will be no new filename etc. # maybe you find the place to change this. i don't want new files... ;-) # always backup your files before shrinking the pdf files. in some cases you get bigger files than smaller ones. # please check after each shrinking... # happy shrinking... # START1=$(date +%s.%2N) # set script start time BEFORE=$(du -sh | cut -f1 -d ".") # get dir size before # for file in *.pdf # beginn loop do START=$(date +%s.%2N) # set file start time pdf2ps "$file" "tmp_${file%.*}.ps" # create temporary tmp_NAME.ps ps2pdf "tmp_${file%.*}.ps" "${file}" # create result - NAME.pdf rm "tmp_${file%.*}.ps" # remove temporary *.ps END=$(date +%s.%2N) # set file end time DIFF=$(echo "$END - $START" | bc) # calc diff time echo "$file done in $DIFF sec." # echo filename done # # do other stuff END1=$(date +%s.%2N) # set script end time DIFF1=$(echo "$END1 - $START1" | bc) # calc diff time AFTER=$(du -sh | cut -f1 -d ".") # get dir size after # echo "" # line break # echo "size before $BEFORE" # echo size before echo "size after $AFTER" # echo size after echo "" # # do some play stuff, show diff time and a timer for closing windows secs=$((2 * 10)) # time calculation while [ $secs -gt 0 ]; do echo -ne "all done in $DIFF1 sec. time till close $secs\033[0K\r" sleep 1 # this second is necessary apart from that the countdown doesn't work : $((secs--)) done |
Kurz und knapp.
Benutzt Du das Fresh PPA schon, dann kommt das Upgrade von LibreOffice 6.2 automatisch. Update von Hand, wenn du nicht warten willst.
Hast Du das Fresh PPA noch nicht eingebunden, dann feuer frei.
1 2 3 4 5 |
sudo add-apt-repository ppa:libreoffice/ppa sudo apt update sudo apt upgrade # oder bzw. sudo apt install libreoffice |
Kurzes Update vom certbot auf Grund der Abschaltung der Domain-Validierungs-Variante TLS-SNI-01 zum 13.02.2019.
Der Grund ist eine Sicherheitslücke, die kaum zu beheben ist. Da das Problem in der Software liegt, die von vielen Hostern verwendet wird. Damit können unrechtmäßig Zertifikate für Domains ausgestellt werden, die nicht im Besitz des Antragstellers sind, wenn diese Domains auf einer Software gehostet wurden, die das Hochladen beliebiger Zertifikate gestattet.
1 |
echo "deb http://ftp.debian.org/debian stretch-backports main" >> /etc/apt/sources.list |
1 |
apt update && apt-get install certbot -t stretch-backports |
Damit sollte es nach dem 13.02.2019, keine Probleme mit neuen Zertifikaten bzw. mit dem Update der alten Zertifikate geben.
Kurzes Beispiel von einem Update noch, schön zu sehen, die „http-01 challenge“ statt der „tls-sni-01 challenge“…
1 2 3 4 5 6 7 8 |
Processing /etc/letsencrypt/renewal/foo.bar.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Plugins selected: Authenticator apache, Installer apache Renewing an existing certificate Performing the following challenges: http-01 challenge for foo.bar Waiting for verification... Cleaning up challenges |
Viel Spaß beim Updaten… 🙂
Erstmal aufräumen und evtl. Installationen löschen.
1 2 3 |
apt-get remove -y docker docker-engine docker.io containerd runc apt-get autoremove -y apt-get autoclean -y |
Fertig aufgeräumt? Kurze Aktualisierung der Pakete und Installation einiger Abhängigkeiten.
1 2 |
apt-get update apt-get install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common |
Offiziellen GPG Schlüssel hinzufügen.
1 |
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - |
GPG Schlüssen überprüfen.
1 |
apt-key fingerprint 0EBFCD88 |
1 2 3 4 |
pub 4096R/0EBFCD88 2017-02-22 Key fingerprint = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 uid Docker Release (CE deb) <docker@docker.com> sub 4096R/F273FCD8 2017-02-22 |
-> 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
Repository hinzufügen etc.
1 2 3 |
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable" apt-get update apt-get install -y docker-ce |
Fertsch, auf zum ersten Docker Test / Image…
1 |
docker run hello-world |
Das Ergebnis sollte, wie folgt aussehen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID: https://hub.docker.com/ For more examples and ideas, visit: https://docs.docker.com/get-started/ |
Happy dockering…
Aktuell erscheint bei mir ständig folgende Fehlermeldung.
1 2 3 |
WARNING: File descriptor limit 1024 is too low for production servers. At least 8192 is recommended. Fix with `ulimit -n 8192`. |
Kurze Abhilfe schafft, wie vorgeschlagen ein.
1 |
ulimit -n 8192 |
Ggf. kann das Limit auch höher eingestellt werden. 8192 ist aber auch erstmal ein guter Wert, damit mein Programm erstmal funktioniert.
Dauerhaft schafft aber eine Änderung in folgenden Dateien.
1 2 |
/etc/systemd/system.conf /etc/systemd/user.conf |
Anzupassen wäre dann.
1 |
DefaultLimitNOFILE= |
Ein guter Wert ist wäre 65535.
Anbei eine kurze Anleitung bzw. der Befehl zum Auslesen von der angeschlossenen USV am Synology NAS.
Als Erstesrstes mit einem Terminal auf das NAS verbinden.
Eine Anleitung dazu gibt es bei Synology.
Kommen wir zum eigentlich Befehl. Der eigentliche Dienst dafür heißt upsc.
1 2 3 |
user@nas:~$ upsc Error: invalid UPS definition. Required format: upsname[@hostname[:port]] |
Der Befehl an sich, liefert einen Hilfetext zurück, weil keine USV / Hostname von einer USV angegeben wurde. Also neuer Versuch.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
user@nas:~$ upsc ups battery.charge: 100 battery.charge.low: 10 battery.charge.warning: 50 battery.date: 2001/09/25 battery.mfr.date: 2018/08/03 battery.runtime: 7400 battery.runtime.low: 120 battery.type: PbAc battery.voltage: 13.4 battery.voltage.nominal: 12.0 device.mfr: x device.model: x device.serial: x device.type: ups driver.name: usbhid-ups driver.parameter.pollfreq: 30 driver.parameter.pollinterval: 5 driver.parameter.port: auto driver.version: x driver.version.data: x driver.version.internal: 0.38 input.sensitivity: medium input.transfer.high: 300 input.transfer.low: 140 input.voltage: 240.0 input.voltage.nominal: 230 ups.beeper.status: enabled ups.delay.shutdown: 20 ups.firmware: 924.Z3 .I ups.firmware.aux: Z3 ups.load: 3 ups.mfr: x ups.mfr.date: x ups.model: x ups.productid: x ups.realpower.nominal: 390 ups.serial: x ups.status: x ups.test.result: No test initiated ups.timer.reboot: 0 ups.timer.shutdown: -1 ups.vendorid: x |
Das sieht schon ein wenig besser aus, liefert aber so ziemlich alle Informationen der USV zurück. Geht auch noch kürzer…
1 2 3 4 |
user@nas:~$ upsc ups | grep -e "battery.charge:" -e "battery.runtime:" -e "ups.load:" battery.charge: 100 battery.runtime: 7400 ups.load: 3 |
Erklärung der Angaben.
Ordner anzeigen die älter als x sind:
1 |
find /dir/ -type d -mtime +2 | sort |
Ordner löschen die älter als x Tage sind:
1 |
find /dir/ -type d -mtime +2 | xargs rm -rf |
Kurze Erklärung:
find sucht Dateien / Ordner
/dir/ der Pfad
type d steht für den Typ Ordner (dir)
mtine +2 steht für den Zeitraum, in welchem gesucht wird, als 2 Tage
Quick & dirty… Aber mit Erfolg.
1 2 |
sudo apt-get update sudo apt-get install numlockx |
1 |
sudo nano /etc/xdg/autostart/numlockx.desktop |
Mit folgendem Inhalt befüllen…
1 2 3 4 5 6 |
[Desktop Entry] Name=Ziffernblock aktivieren Type=Application Exec=numlockx on Terminal=false NoDisplay=true |
Und noch eine weitere Änderung, damit der Nummernblock auf beim Anmelden aktiv ist.
1 |
sudo nano /usr/share/lightdm/lightdm.conf.d/50-greeter-wrapper.conf |
1 |
greeter-setup-script=/usr/bin/numlockx on |
Was tun, wenn am BananaPi, 2 HDD / SSD angeschlossen sind und dafür aktuell 2 SMB Freigaben existieren?! Richtig, eine Lösung suchen zum Zusammenlegen.
In diesem Fall, heißt die Lösung *mhddfs*.
1 2 3 4 5 6 7 |
root@pii ~ # man mhddfs | grep -A 6 -i name NAME mhddfs - The driver combines a several mount points into the single one. SYNOPSIS mhddfs /dir1,/dir2[,/path/to/dir3] /path/to/mount [-o options] mhddfs /dir1 dir2,dir3 /mount/point [-o options] |
Also kurzgefasst. Ordner angeben die zusammen gemountet werden sollen und das Ziel, wo gemountet werden soll.
In meinem Fall, eine USB und eine SATA HDD…
1 |
mhddfs /usb/1,/sda/2 /usbsda -o allow_other |
-o allow_other erlaubt den Zugriff für alle. Also auch für SMB Freigaben. Ohne die Option war kein SMB Zugriff möglich. Die Option fehlt leider in der Manpage.
Lustigerweise werden beide Platten mit der Größe auch zusammengelegt.
1 2 3 |
root@pii ~ # df -h /usbsda Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf /usb/1;/sda/2 752G 290G 425G 41% /usbsda |
Aushängen geht mit fusermount…
1 |
fusermount -u /usbsda |
Hier noch die spärliche Manpage…
Ein kleines Script für einen Shoutcast Server Lasttest. Das Script stammt NICHT von mir. Ich übernehme es bloß, da die orig. Seite offline ging / geht.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#!/bin/bash echo "enter a URL to stress test. ex: http://radio.derp.com:8123" read URL echo "enter number of threads to run. ex: 50" read THREADS for ((N=0; N<$THREADS; N++)) do curl -o /dev/null $URL >> /dev/null 2>&1 & done echo "Created "$THREADS" threads connected to "$URL echo "Live Bandwidth" echo "hit ctrl-c when you are finished" vnstat -l echo "Press any button and hit enter to kill all curl processes! Thanks!" read Q killall -e curl |
Curl und vnstat wird benötigt.
1 |
apt install -y curl vnstat |
Das Ergebnis.
1 2 3 4 5 6 7 8 9 10 11 |
./shoutcast_stress.sh enter a URL to stress test. ex: http://radio.derp.com:8123 stream.willstare.com:8123 enter number of threads to run. ex: 50 1500 Created 1500 threads connected to radio.derp.com:8123 Live Bandwidth hit ctrl-c when you are finished Monitoring em0... (press CTRL-C to stop) rx: 50.45 Mbit/s 4514 p/s tx: 2.48 Mbit/s 4503 p/s |
Quelle: http://willstare.com/stress-testing-shoutcast-server/
Hier der kurze Weg um FFmpeg zu kompilieren. Je nach Cpu-Cores dauert es etwas länger oder kürzer…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# clone git git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg # change dir cd ffmpeg # install library packages and build tools apt install -y build-essential libmp3lame-dev libvorbis-dev \ libtheora-dev libspeex-dev yasm \ pkg-config libfaac-dev libopenjpeg-dev \ libx264-dev yasm pkg-config # ./configure # or ./configure --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-libmp3lame --enable-libtheora --enable-libvorbis # make make # x for your cores, 2 - 99, make uses only one core make [-j x] # install sudo make install |
Und tadaaa!
1 2 3 4 5 6 7 8 9 10 11 12 |
~ ffmpeg -version ffmpeg version N-89508-g1f12071 Copyright (c) 2000-2017 the FFmpeg developers built with gcc 4.9.2 (Debian 4.9.2-10) configuration: libavutil 56. 6.100 / 56. 6.100 libavcodec 58. 8.100 / 58. 8.100 libavformat 58. 3.100 / 58. 3.100 libavdevice 58. 0.100 / 58. 0.100 libavfilter 7. 7.100 / 7. 7.100 libswscale 5. 0.101 / 5. 0.101 libswresample 3. 0.101 / 3. 0.101 |
1 |
while ! command#1;do sleep 5; done |
Kurzform: Command#1 wird ausgeführt, Kurze vordefinierte Wartezeit oder evtl. auch 2. Befehl und dann geht es wieder von vorne los.
Ich brauchte dies, um Dateien per rsync vom Server zukopieren, weil alle paar Sekunden die Verbindung abgebrochen wurde. Damit lies es dann ohne Probleme und rsync wurde immer neugestartet.
Beendet wird der Befehl mit 2x „Strg + c“.
SD-Karte vom Raspberry Pi voll?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
root@pi2 ~ # du -sh /lib/modules/* 50M /lib/modules/4.4.23+ 51M /lib/modules/4.4.23-v7+ 50M /lib/modules/4.4.27+ 51M /lib/modules/4.4.27-v7+ 50M /lib/modules/4.4.30+ 51M /lib/modules/4.4.30-v7+ 50M /lib/modules/4.4.31+ 51M /lib/modules/4.4.31-v7+ 50M /lib/modules/4.4.33+ 51M /lib/modules/4.4.33-v7+ 50M /lib/modules/4.4.35+ 51M /lib/modules/4.4.35-v7+ 50M /lib/modules/4.4.36+ 51M /lib/modules/4.4.36-v7+ 50M /lib/modules/4.4.37+ 51M /lib/modules/4.4.37-v7+ 50M /lib/modules/4.4.41+ 51M /lib/modules/4.4.41-v7+ 50M /lib/modules/4.4.42+ 51M /lib/modules/4.4.42-v7+ 50M /lib/modules/4.4.43+ 51M /lib/modules/4.4.43-v7+ 50M /lib/modules/4.4.44+ 52M /lib/modules/4.4.44-v7+ 50M /lib/modules/4.4.45+ 52M /lib/modules/4.4.45-v7+ 50M /lib/modules/4.4.46+ 52M /lib/modules/4.4.46-v7+ 50M /lib/modules/4.4.47+ 52M /lib/modules/4.4.47-v7+ 50M /lib/modules/4.4.49+ 52M /lib/modules/4.4.49-v7+ 52M /lib/modules/4.9.11+ 53M /lib/modules/4.9.11-v7+ 52M /lib/modules/4.9.13+ 53M /lib/modules/4.9.13-v7+ 52M /lib/modules/4.9.14+ 54M /lib/modules/4.9.14-v7+ 53M /lib/modules/4.9.16+ 54M /lib/modules/4.9.16-v7+ 53M /lib/modules/4.9.17+ 54M /lib/modules/4.9.17-v7+ 53M /lib/modules/4.9.19+ 54M /lib/modules/4.9.19-v7+ 53M /lib/modules/4.9.20+ 54M /lib/modules/4.9.20-v7+ 53M /lib/modules/4.9.22+ 54M /lib/modules/4.9.22-v7+ 53M /lib/modules/4.9.23+ 54M /lib/modules/4.9.23-v7+ 53M /lib/modules/4.9.25+ 54M /lib/modules/4.9.25-v7+ 53M /lib/modules/4.9.26+ 54M /lib/modules/4.9.26-v7+ 53M /lib/modules/4.9.27+ 54M /lib/modules/4.9.27-v7+ 53M /lib/modules/4.9.28+ 54M /lib/modules/4.9.28-v7+ 53M /lib/modules/4.9.29+ 54M /lib/modules/4.9.29-v7+ 53M /lib/modules/4.9.30+ 54M /lib/modules/4.9.30-v7+ 53M /lib/modules/4.9.31+ 54M /lib/modules/4.9.31-v7+ 53M /lib/modules/4.9.33+ 54M /lib/modules/4.9.33-v7+ 53M /lib/modules/4.9.34+ 54M /lib/modules/4.9.34-v7+ root@pi2 ~ # du -sh /lib/modules/ 3,5G /lib/modules/ |
Hier die Lösung!
1 |
PRUNE_MODULES=1 rpi-update |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
root@pi2 ~ # PRUNE_MODULES=1 rpi-update *** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom *** Performing self-update *** Relaunching after update *** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom ############################################################# This update bumps to rpi-4.9.y linux tree Be aware there could be compatibility issues with some drivers Discussion here: https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=167934 ############################################################## *** Downloading specific firmware revision (this will take a few minutes) % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 168 0 168 0 0 264 0 --:--:-- --:--:-- --:--:-- 264 100 53.9M 100 53.9M 0 0 599k 0 0:01:32 0:01:32 --:--:-- 617k *** Updating firmware *** Updating kernel modules Pruning //lib/modules/4.9.27-v7+ Pruning //lib/modules/4.4.44+ Pruning //lib/modules/4.9.13-v7+ Pruning //lib/modules/4.4.35-v7+ Pruning //lib/modules/4.4.37+ Pruning //lib/modules/4.9.33+ Pruning //lib/modules/4.9.22+ Pruning //lib/modules/4.9.17-v7+ Pruning //lib/modules/4.9.34+ Pruning //lib/modules/4.9.30+ Pruning //lib/modules/4.4.36+ Pruning //lib/modules/4.9.23+ Pruning //lib/modules/4.4.33+ Pruning //lib/modules/4.9.14-v7+ Pruning //lib/modules/4.9.34-v7+ Pruning //lib/modules/4.4.27-v7+ Pruning //lib/modules/4.4.44-v7+ Pruning //lib/modules/4.4.37-v7+ Pruning //lib/modules/4.9.13+ Pruning //lib/modules/4.9.31-v7+ Pruning //lib/modules/4.9.23-v7+ Pruning //lib/modules/4.9.20+ Pruning //lib/modules/4.4.31-v7+ Pruning //lib/modules/4.4.30+ Pruning //lib/modules/4.4.30-v7+ Pruning //lib/modules/4.4.45+ Pruning //lib/modules/4.9.20-v7+ Pruning //lib/modules/4.9.14+ Pruning //lib/modules/4.4.36-v7+ Pruning //lib/modules/4.4.46+ Pruning //lib/modules/4.9.26+ Pruning //lib/modules/4.9.19-v7+ Pruning //lib/modules/4.4.23-v7+ Pruning //lib/modules/4.9.30-v7+ Pruning //lib/modules/4.9.16-v7+ Pruning //lib/modules/4.4.46-v7+ Pruning //lib/modules/4.4.35+ Pruning //lib/modules/4.4.33-v7+ Pruning //lib/modules/4.9.16+ Pruning //lib/modules/4.9.25+ Pruning //lib/modules/4.4.43-v7+ Pruning //lib/modules/4.4.23+ Pruning //lib/modules/4.9.11+ Pruning //lib/modules/4.9.26-v7+ Pruning //lib/modules/4.9.31+ Pruning //lib/modules/4.9.25-v7+ Pruning //lib/modules/4.4.47-v7+ Pruning //lib/modules/4.4.41-v7+ Pruning //lib/modules/4.4.42+ Pruning //lib/modules/4.4.27+ Pruning //lib/modules/4.9.19+ Pruning //lib/modules/4.9.28-v7+ Pruning //lib/modules/4.9.17+ Pruning //lib/modules/4.9.33-v7+ Pruning //lib/modules/4.4.45-v7+ Pruning //lib/modules/4.9.29+ Pruning //lib/modules/4.9.27+ Pruning //lib/modules/4.4.31+ Pruning //lib/modules/4.4.47+ Pruning //lib/modules/4.4.43+ Pruning //lib/modules/4.4.49+ Pruning //lib/modules/4.9.28+ Pruning //lib/modules/4.4.41+ Pruning //lib/modules/4.9.11-v7+ Pruning //lib/modules/4.4.49-v7+ Pruning //lib/modules/4.9.29-v7+ Pruning //lib/modules/4.9.22-v7+ Pruning //lib/modules/4.4.42-v7+ *** depmod 4.9.35+ *** depmod 4.9.35-v7+ *** Updating VideoCore libraries *** Using HardFP libraries *** Updating SDK *** Running ldconfig *** Storing current firmware revision *** Deleting downloaded files *** Syncing changes to disk *** If no errors appeared, your firmware was successfully updated to 330fb17cb87c2b57cf8e670b34b7a27527b787fa *** A reboot is needed to activate the new firmware |
Und taaaadaaaa!!
1 2 3 |
root@pi2 ~ # du -sh /lib/modules/* 53M /lib/modules/4.9.35+ 54M /lib/modules/4.9.35-v7+ |
Danach sollte def. nix mehr zwischengespeichert werden. Der untere Teil, bezieht auf einzelne Formate.
1 2 |
a2enmod headers expires # Module laden service apache2 restart # Apache neustarten |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<IfModule mod_headers.c> Header set Cache-Control "no-cache, no-store, must-revalidate" Header set Pragma "no-cache" Header set Expires 0 Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT" </IfModule> # <IfModule mod_expires.c> ExpiresActive On ExpiresDefault A0 <FilesMatch "\.(gif|png)$"> ExpiresDefault A60 </FilesMatch> </IfModule> |