Installer Raspbian sur un disque dur externe

Installer Raspbian sur un disque dur externe

raspbianLogo

Je vous ai déjà parlé de cette installation avec Arch Linux. Cette ré-édition, vous permettra d’installer Rasbian sur un Raspberry Pi relié à un disque dur.

L’enjeu est de sauvegarder votre précieuse carte SD qui n’a que peu de temps à vivre (entre 10 000 et 100 000 écritures suivant votre carte) en utilisant un disque dur externe relié par USB sur le Raspberri Pi (voir la photo ci-dessus). Ce tutoriel peut très bien être réalisé avec une clef USB au lieu d’un disque dur externe.

 

Ne pas se tromper sur le disque dur externe pour le raspberry

Lors de votre choix de disque dur externe plusieurs solutions s’offrent à vous mais certaines ne marcheront pas:

  • Disque dur externe auto-alimenté par un hub externe avec alimentation : ce type de disque dur externe a une connectique avec une reprise d’alimentation qui devra être branchée au hub. Cette solution est de loin la meilleure car l’alimentation fournie au disque dur externe sera stable et vous pourrez aussi alimenter votre Raspberry Pi via le hub. Si vous recherchez une solution fiable je vous conseille le PiHub de Pimoroni.

pihubPiHub de Pimoroni

  • Disque dur externe auto-alimenté par secteur + Raspberry Pi alimenté par secteur : cette solution marche très bien et permet d’être assez compacte. C’est celle-ci que j’ai installée.
  • Disque dur externe auto-alimenté par un hub externe sans alimentation relié au Raspberry Pi : Cette solution ne marchera pas car la tension délivrée par le Raspberry Pi ne délivre pas assez d’ampères pour faire marcher un disque dur externe. Le disque dur externe s’allumera, mais ne sera pas reconnu par la commande “fdisk -l”. Toute fois, cette solution permet d’alimenter une clef wifi, une webcam ou une clef USB.

usb-autoalimentéCâble USB avec reprise d’alimentation

  • Disque dur externe simple : ce type de disque dur a un câble usb simple : une entrée et une sortie USB. Comme dans le cas précédent, il ne sera pas reconnu une fois branché au Raspberry Pi car la tension n’est pas suffisante pour son bon fonctionnement. Dans ce cas de figure aucune solution possible pour ce type de matériel, à moins d’acheter un câble USB avec reprise d’alimentation.

raspberrypi-dd-externe

Préparation de la carte SD depuis Rasbian

sandisk-class-10

La préparation de la carte SD s’effectue depuis un ordinateur installé sous Linux Mint. Les convertis sauront l’adapter à n’importe quelle distribution, et pour les néophytes vous pouvez réaliser la manipulation depuis un live-cd Linux Mint par exemple.

[important] Aparté pour les débutants GNU/Linux : pour créer un live-cd Linux Mint, téléchargez l’image iso à graver sur un cd ici : http://www.linuxmint.com/download.php. Une fois le cd gravé, redémarrez votre ordinateur en bootant dessus, puis repérez l’application Terminal… vous en aurez vite besoin![/important]

Récupérons depuis un OS Linux, une image de Raspbian pour raspberry pi :
$ cd ~/Téléchargements
$ wget http://archive.raspbian.org/images/rpi_pisces_mate_r2.zip

L’image téléchargée, nous allons la transférer sur la carte SD avec la commande dd.
Insérez la carte SD dans votre ordinateur et repérons son emplacement avec la commande fdisk :
$ sudo fdisk -l

exemple de réponse
Device Boot Start End Blocks Id System
/dev/sdb1 * 2048 155647 76800 b W95 FAT32
/dev/sdb2 155648 655359 249856 82 Linux swap / Solaris
/dev/sdb3 655360 7624703 3484672 83 Linux
Dans ce cas, je dois démonter les 2 partitions, sdb1 et sdb2 qui sont automatiquement montées à l’insertion du média. La partition 2 n’est pas montée, c’est du swap. Adaptez cette commande à votre cas, une partition FAT32 ou NTFS pouvent être montée automatiquement dans votre cas.
$ sudo umount /dev/sdb1  
$ sudo umount /dev/sdb3  
[warning] Attention la suite du tutoriel va effacer toutes les données de votre carte SD. Veuillez sauvegarder toutes vos données sur un autre média.[/warning]

J’ai trouvé ma carte SD de 4 Gigas sous /dev/sdb, nous pouvons copier l’image sur la carte :
$ cd ~/Téléchargements
$ unzip rpi_pisces_mate_r2.zip
$ sudo dd if=~/Téléchargements/rpi_pisces_mate_r2.img of=/dev/sdb

Sortez la carte SD de votre ordinateur un instant car nous en aurons besoin pour la suite.

 

Préparation du disque dur externe depuis une distribution Linux

disque_dur_externe

Veuillez insérer votre disque dur dans votre ordinateur. Nous allons le formater en EXT4. Pour cela, nous pouvons faire de la ligne de commande 😀

Repérons le disque dur :
$ sudo fdisk -l
Disk /dev/sdc: 250.1 GB, 250059350016 bytes
$ sudo umount /dev/sdc1
$ sudo umount /dev/sdc2
... etc à adapter à votre cas,comme précédemment

Lançons fdisk sur la partition du disque dur:
$ sudo fdisk /dev/sdc

Une fois dans fdisk, supprimez toutes les partitions existantes en abusant de la touche “d” jusqu’à plus faim!

Maintenant vous pouvez créer la partition avec a touche “n” et choisissez “primaire” dans les options, et validez la taille par défaut qui prendra l’ensemble de l’espace disque. Pour appliquer toutes les modifications finalisez en tapant la touche “w”.

Nous allons maintenant formater la partition primaire créée en EXT4 avec mkfs:
$ sudo mkfs -t ext4 /dev/sdc1

Très belle partition, mais il nous faut la remplir avec la partition “racine” qui pour l’instant est contenue sur la carte SD. Alors insérez votre carte SD qui devrait se retrouver sous /dev/sdb. En détaillant le contenu de la carte SD avec fdisk vous devriez avoir :
/dev/sdb1 2048 186367 92160 c W95 FAT32 (LBA)
/dev/sdb2 186368 3667967 1740800 5 Extended
/dev/sdb5 188416 3667967 1739776 83 Linux

Comme nous l’avons ré-insérée, il nous faut re-démonter les partitions :
$ sudo umount /dev/sdb1
$ sudo umount /dev/sdb3

Nous allons donc copier avec l’outil dd, la partition sdb3 (83 Linux) sur le disque dur. Si l’emplacement est différent alors adaptez la commande :)

$ sudo dd if=/dev/sdb3 of=/dev/sdc1
[warning] pause café! [/warning]

A ce stade le Raspberry Pi boot sur la carte SD mais ne trouve pas la partition contenant l’image du système. Pour cela éditez le fichier cmdline.txt :

Retirez la carte SD de votre ordinateur et réinsérez-là, afin de montrer rapidement les partitions de la carte.

Dans  mon cas, le fichier cmdline.txt est sous /media/linuxmoi/837D-0468

$ sudo nano /media/linuxmoi/837D-0468/cmdline.txt
et changez
root=/dev/mmcblk0p5
Par
root=/dev/sda1

Voilà, le disque dur externe et la carte SD sont prêts, vous pouvez les insérer hors-tension dans le Raspberry Pi. Une fois insérés, alimentez le disque dur externe puis le Raspberry Pi.

Premier démarrage sous Raspbian

Comme j’ai un bon film à la télé, je vais prendre la main à distance du raspberry pi sur mon pc portable via SSH. Je repère l’IP du raspberry pi à partir de la page de ma box (http://192.168.1.1). Je lance ainsi depuis mon pc portable sous Linux la commande de connexion SSH:
# ssh root@192.168.1.101
(login: root motdepasse: raspbian)

 

Agrandir la partition racine

Précédemment avec la commande dd nous avons copié le contenu d’une partition de 3 Gigas. La partition primaire du disque dur a donc été redimensionnée à 3 Gigas par dd. Nous allons donc l’agrandir avec la commande resize2fs :
# resize2fs /dev/sda1

 

Changer de mot de passe ROOT

root

Changeons le mot de passe root :
$ sudo passwd

Changeons aussi le nom du raspberry pi nommé “alarmpi” en ce que vous souhaitez :
$ sudo nano /etc/hosts

Changez “alarmpi” par le nom souhaité. Faites de même dans le fichier hostname:
$ sudo nano /etc/hostname

Puis redémarrez :
$ sudo shutdown -r now

Franchisez votre installation avec les Locales

Décommentez fr_FR.UTF-8 dans le fichier /etc/locale.gen
# nano /etc/locale.gen && locale-gen

Mettons-nous à l’heure de Paris

# rm /etc/localtime
# ln -s /usr/share/zoneinfo/Europe/Paris /etc/localtime
# date

Mise à Jour

Mettez à jour Raspbian avec cette commande qui résume en une ligne toutes les possibilités de mise à jour :
# sudo apt-get -y update && sudo apt-get -y upgrade && sudo apt-get -y dist-upgrade && sudo apt-get -y autoremove && sudo apt-get -y autoclean && sudo apt-get autoremove --purge && sudo apt-get autoclean

Vous pouvez là aussi aller vous faire un petit café 😉

Installation du Package de Développement

Installez le package de développement
# apt-get install build-essential fakeroot checkinstall

Créer un nouvel utilisateur et supprimer root et raspbian

Installez samba au pré-alable
sudo apt-get install samba4

Créons un nouvel utilisateur

$ sudo adduser honeyshell –home /home/honeyshell

Ajoutons le au groupe sudo et aux autres groupes

$ sudo adduser honeyshell cdrom
$ sudo adduser honeyshell floppy
$ sudo adduser honeyshell sudo
$ sudo adduser honeyshell audio
$ sudo adduser honeyshell dip

on désactive le compte root, car on utilisera “sudo” :

$ sudo passwd –lock root
$ sudo userdel raspbian
$ sudo rm -R /home/raspbian

Un redémarrage à la main en débranchant le raspberry et le disque dur est nécessaire,
car il n’y a plus de compte avec des droits à ce moment là!

Sécurisation de SSH

ssh

Sécurisons la connexion SSH avec Fail2ban dans le cas ou vous vous connecteriez à votre raspberry pi depuis l’extérieur!
$ sudo apt-get installfail2ban

Modifiez le fichier de configuration jail.com ainsi :
$ sudo nano /etc/fail2ban/jail.conf
....
# ignoreip = 127.0.0.1/8
....
[ssh-iptables]
enabled = true
....

Par défaut fail2ban consomme beaucoup de CPU. Heureusement il est possible de le configurer pour notre Raspberry Pi et ses 256 Mo de RAM.
$ sudo nano /etc/default/fail2ban
Ajouter à la fin du fichier :
ulimit -s 256

Nous allons supprimer la connexion en SSH avec le compte root en modifiant quelques paramètres :
$ sudo nano /etc/ssh/sshd_config
Port 15000
PermitRootLogin no
MaxStartups 10:30:100

Redémarrons le service SSH pour prendre en compte les changements:
# systemctl restart sshd

Au redémarrage vous pourrez prendre la main avec la commande :
$ ssh honeyshell@192.168.1.101 -p 15000

 

Installation de Transmission

Pour ceux qui voudraient dédiés leur Rapsberry Pi comme serveur torrent voici l’installation de transmission en tant que service :

$ sudo apt-get install transmission transmission-daemon

La configuration de transmission se passe service arrêté:

$ sudo /etc/init.d/transmission-daemon stop

Editons le fichier de configuration

$ sudo cp /etc/transmission-daemon/settings.json /etc/transmission-daemon/settings.json.bak.origin

$ sudo nano /etc/transmission-daemon/settings.json

 

je vous propose ces modifications :

“alt-speed-down”: 400,

“alt-speed-enabled”: true,

“alt-speed-time-begin”: 540,

“alt-speed-time-day”: 127,

“alt-speed-time-enabled”: false,

“alt-speed-time-end”: 1020,

“alt-speed-up”: 8,

“bind-address-ipv4”: “0.0.0.0”,

“bind-address-ipv6”: “::”,

“blocklist-enabled”: false,

“blocklist-url”: “http://www.example.com/blocklist”,

“cache-size-mb”: 4,

“dht-enabled”: false,

“download-dir”: “/home/linuxmoi/downloads”,

“download-limit”: 300,

“download-limit-enabled”: 0,

“download-queue-enabled”: true,

“download-queue-size”: 5,

“encryption”: 1,

“idle-seeding-limit”: 30,

“idle-seeding-limit-enabled”: false,

“incomplete-dir”: “/root/Downloads”,

“incomplete-dir-enabled”: false,

“lpd-enabled”: false,

“max-peers-global”: 100,

“message-level”: 2,

“peer-congestion-algorithm”: “”,

“peer-limit-global”: 140,

“peer-limit-per-torrent”: 60,

“peer-port”: 51413,

“peer-port-random-high”: 65535,

“peer-port-random-low”: 49152,

“peer-port-random-on-start”: false,

“peer-socket-tos”: “default”,

“pex-enabled”: false,

“port-forwarding-enabled”: false,

“preallocation”: 1,

“prefetch-enabled”: 1,

“queue-stalled-enabled”: true,

“queue-stalled-minutes”: 30,

“ratio-limit”: 10,

“ratio-limit-enabled”: false,

“rename-partial-files”: true,

“rpc-authentication-required”: true,

“rpc-bind-address”: “0.0.0.0”,

“rpc-enabled”: true,

“rpc-password”: “{309061901c706acba98dff937191d59d175b750dHa6zJtZw”,

“rpc-port”: 6001,

“rpc-url”: “/transmission/”,

“rpc-username”: “linuxmoi”,

“rpc-whitelist”: “*.*.*.*”,

“rpc-whitelist-enabled”: false,

“scrape-paused-torrents-enabled”: true,

“pex-enabled”: false,

“port-forwarding-enabled”: false,

“preallocation”: 1,

“prefetch-enabled”: 1,

“queue-stalled-enabled”: true,

“queue-stalled-minutes”: 30,

“ratio-limit”: 10,

“ratio-limit-enabled”: false,

“rename-partial-files”: true,

“rpc-authentication-required”: true,

“rpc-bind-address”: “0.0.0.0”,

“rpc-enabled”: true,

“rpc-password”: “{309061901c706acba98dff937191d59d175b750dHa6zJtZw”,

“rpc-port”: 6001,

“rpc-url”: “/transmission/”,

“rpc-username”: “linuxmoi”,

“rpc-whitelist”: “*.*.*.*”,

“rpc-whitelist-enabled”: false,

“scrape-paused-torrents-enabled”: true,

“script-torrent-done-enabled”: false,

 

Donner les droits à Transmission sur le dossier Download:

$ sudo chown -R debian-transmission:honeyshell /home/honeyshell/downloads/

On partage le dossier à tout le monde pour pouvoir y accéder:

$ sudo chmod -R 775 /home/honeyshell/downloads/

$ sudo adduser honeyshell debian-transmission

Reconnectez-vous sur votre session pour appliquer les changements:

$ su honeyshell

On vérifie les commandes:
$ ls -hals /home/honeyshell/downloads/

on redémarre le daemon pour activer Transmission:

$ sudo /etc/init.d/transmission-daemon start
L’interface web se trouve à l’adresse : http://192.168.1.101:6001 dans mon cas

  1. Partager un dossier via Samba

 

$ sudo apt-get install samba

$ sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.old

$ sudo nano /etc/samba/smb.conf

 

[global]
server string = pluton
workgroup = home
netbios name = pluton
dns proxy = no
public = yes
encrypt passwords = true

log file = /var/log/samba/%m.log
max log size = 1000

# pour eviter les erreurs CUPS dans syslog
printing = bsd
printcap name = /dev/null

[Videos]
path = /home/honeyshell/downloads
read only = yes
writeable = yes
valid users = honeyshell
comment = torrent

Ajoutons l’utilisateur “honeyshell” dans la liste des utilisateurs Samba avec son mot de passe associé:

$ sudo smbpasswd -a honeyshell

 

 

Créez vos articles wordpress depuis gmail

Créez vos articles wordpress depuis gmail

Comment créez vos articles wordpress depuis gmail

if_wordpress_then_gmail

Au préalable, il vous faut créer sur gmail une adresse dédiée à vos articles sur WordPress. Elle ne contiendra que vos articles.
Ainsi depuis votre boite mail principale, vous enverrez un mail sur l’adresse de la boite mail gmail-wordpress.

  • connectez vous à l’interface d’administration de votre WordPress
  • allez dans Settings > Writing (désolé mon interface est en EN)
  • puis renseignez ainsi :
    • Mail Server: ssl://pop.gmail.com
    • Port: 995
    • Login Name: nom_d_utilisateur_de_la_boite_mail_gmail_wordpress
    • Password: mot_de_passe_de_la_boite_mail_gmail_wordpress  (vous comprenez pourquoi il faut une adresse dédiée pour cause de sécurité!!!)
    • Default Mail Catefory: ce que vous souhaitez!!
  • Maintenant nous devons activer Pop et “désécurisez” votre boite mail gmail:
    • connectez vous à votre boite mail gmail pour wordpress
    • aller sur la roue dentée, puis “settings” (désolé cette interface est aussi en EN :)  )
    • cochez le rond en face de Enable POP for all mail
  • Et il faut aussi “dé-sécuriser” votre boite mail gmail:
    • en étant connecté sur votre boite mail pour wordpress allez à cette adresse: http://www.google.com/settings/security/lesssecureapps
    • et cliquer sur “activer” afin que WordPress puisse récupérer l’article envoyé par mail
  • Maintenant vous pouvez tester en envoyant un mail depuis votre boite principale à l’adresse mail de votre boite mail gmail pour wordpress.
  • Pour actualiser plus rapidement la récupération du mail, vous pouvez utiliser le lien : http://www.mon_site_web.com/wp-mail.php

 

Copier-coller dans une machine Ubuntu en virtualbox depuis Windows

L’option copier-coller bidirectionnelle est activable via l’onglet
Périphériques > Presse papier partagé > Bidirectionnel. Mais il ne
marche pas! Pour cela, il vous faut installer les outils de
compilation et installer virtualbox-ose-guest-x11.


$ sudo apt-get update && sudo apt-get upgrade
$ sudo apt-get install build-essential linux-headers-$(uname -r)
$ sudo apt-get install virtualbox-ose-guest-x11

Relancer en automatique un service linux via MONIT

source : http://www.cyberciti.biz/tips/howto-monitor-and-restart-linux-unix-service.html

Installation depuis les dépots :
$ sudo apt-get install monit

Installation depuis le code source :
# cd /opt
# wget http://www.tildeslash.com/monit/dist/monit-4.8.2.tar.gz
# tar -zxvf monit-4.8.2.tar.gz
# cd monit-4.8.2

nb: adaptez ma version en fonction des mises à jour 😉

Configuration, compilation et installation de monit:
# ./configure
# make
# make install

Création du fichier de configuration:
# cp monitrc /etc/monitrc
par défaut monit est installé sous /usr/local/bin/monit

Comment configurer MONIT

Le fichier de configuration de monit se nomme monitrc; son chemin est
/etc/monitrc. Cependant chaque distribution l’installe à différents
endroit comme :
=> installation depuis le code source : /etc/monitrc
=> installation basées sur Debian : /etc/monit/monitrc

Ouvre le fichier de configuration de monit ainsi:
# vi /etc/monitrc

Configurons ses options:

a) Démarrer monit comme un service/daemon qui ira vérifier les autres
services par intervalles de les 2 minutes.
set daemon 120

b) Le fichier de log sera associé aux log syslog :
set logfile syslog facility log_daemon

c) Vous pouvez spécifiez une adresse mail d’alerte
set mailserver mail.cyberciti.biz

Il est possible de configurer plus d’option dans l’envoi de mail ainsi :
set mail-format { from: alert@nixcraft.in
subject: $SERVICE $EVENT at $DATE
message: Monit $ACTION $SERVICE at $DATE on $HOST: $DESCRIPTION.
}

d) Maintenant le plus important est la vérification d’un service tel
que lighttpd ou apache. Il vérifia que le service est actif ou alors
il le redémarrera le cas échant.:
check process lighttpd with pidfile /var/run/lighttpd.pid
group lighttpd
start program = “/etc/init.d/lighttpd start”
stop program = “/etc/init.d/lighttpd stop”
if failed host 75.126.43.232 port 80
protocol http then restart
if 5 restarts within 5 cycles then timeout

Un peu d’explications :

Le service lighttpd est vérifié via pidfile /var/run/lighttpd.pid : on
a spécifié le fichier pid de lighttpd ainsi que le nom du
service/daemon
group lighttpd: on spécifie le nom du groupe qui est autorisé à
utiliser et manipuler lighttpd
start program = “/etc/init.d/lighttpd start” : commande pour démarrer le service
stop program = “/etc/init.d/lighttpd stop” : commande pour arrêter le service
if failed host 127.0.0.1 port 80 : adresse du serveur web et son port (80)
protocol http then restart : dans le cas d’un webserveur on demande à
monit de le redémarrer
if 5 restarts within 5 cycles then timeout : on demande à le
redémarrer jusqu’à 5 fois, histoire de ne pas boucler sur une erreur.

Exemple avec mysqld et son pidfile /var/run/mysqld/mysqld.pid :

start program = “/etc/init.d/mysqld start”
stop program = “/etc/init.d/mysqld stop”
if failed host 127.0.0.1 port 3306 then restart
if 5 restarts within 5 cycles then timeout

Exemple avec sshd :
check process sshd with pidfile /var/run/sshd.pid
start program “/etc/init.d/sshd start”
stop program “/etc/init.d/sshd stop”
if failed host 127.0.0.1 port 22 protocol ssh then restart
if 5 restarts within 5 cycles then timeout

Exemple avec Apache:
check process httpd with pidfile /var/run/httpd.pid
group apache
start program = “/etc/init.d/httpd start”
stop program = “/etc/init.d/httpd stop”
if failed host 127.0.0.1 port 80
protocol http then restart
if 5 restarts within 5 cycles then timeout

Replacez l’address IP 127.0.0.1 avec votre adresse actuelle.

Démarrer MONIT sous Debian :
# /etc/init.d/monit start

De League of Legend, comment passer du clavier QWERTY en AZERTY

Si vous jouez sous League of Legend avec PlayOnLinux, le jeu marche à 90% comme sous Windows.

Mais la clavier utilisé par PlayOnLinux reste en qwerty alors qu’il devrait utiliser la configuration du système qui est en FR, si vous avez installé linux en fr.

leagueoflegend

Pour corriger automatiquement ce défaut, il existe une semi-solution qui est de passer automatiquement votre clavier en “us” dès le lancement du jeu, puis retrouver le clavier “fr” une fois LoL fermé. Le côté positif, c’est que vous jouez avec les bons raccourcis. Le côté négatif, c’est que dans le tchat du jeu, vous êtes en us. Personnellement cela ne me gène pas, j’ai vite appris les différences entre les deux claviers. En premier, nous ferons une copie du script de lancement du jeu (FAITES-LE) puis nous l’éditerons :

$ cp ~/.PlayOnLinux/shortcuts/League\ of\ Legends ~/.PlayOnLinux/shortcuts/League\ of\ Legends.backup

$ nano ~/.PlayOnLinux/shortcuts/League\ of\ Legends

et modifiez le script ainsi :

#!/bin/bash

setxkbmap us   # passe le clavier qwerty

[ “$PLAYONLINUX” = “” ] && exit 0
source “$PLAYONLINUX/lib/sources”
export WINEPREFIX=”/home/linuxmoi/.PlayOnLinux//wineprefix/LeagueOfLegends”
export WINEDEBUG=”-all”
#POL_Log=League of Legends
#ScriptID=League Of Legends
cd “/home/linuxmoi/.PlayOnLinux//wineprefix/LeagueOfLegends/drive_c/./Riot Games/League of Legends”
POL_Wine lol.launcher.admin.exe “$@”

# boucle d’ attente de fermeture du jeux
while :
do
sleep 5s  # boucle de 5 secondes pour la détection de la fermeture de LoL
test=$(ps -A | grep LoLLauncher | wc -l) # ici on recherche le processus LoLLauncher
print $test
        if [ $test -lt 1 ] ; then
             setxkbmap fr  #  repasse en clavier azerty a la fermeture de LOL
             break
        fi
done:

Fermez le script avec CTRL+x et “o” pour valider la sauvegarde. Vous n’avez plus qu’à tester LoL en cliquant sur l’icon LoL de votre bureau.

Si vous souhaitez revenir en arrière et que vous avez bien fait le backup du départ, voici la solution :

$ rm  ~/.PlayOnLinux/shortcuts/League\ of\ Legends

$ cp ~/.PlayOnLinux/shortcuts/League\ of\ Legends.backup ~/.PlayOnLinux/shortcuts/League\ of\ Legends

Screen le « multiplexeur de terminaux »

Screen le « multiplexeur de terminaux »

Screen est un « multiplexeur de terminaux » permettant d’ouvrir
plusieurs terminaux dans une même console, de passer de l’un à l’autre
et de les récupérer plus tard.
screen
installation
$ sudo apt-get install screen

Créer nouveau screen en mode daemon
$ screen
$ screen -dmS toto1  (pour nommer le screen)
$ screen -r toto1 (pour entrer dans la session toto1)

Détacher le screen (obligatoire pour récupérer le screen d’un autre poste)
$ screen -d
ou
CTRL+a  (relâcher) d

Réouvrir le screen (unique)
$ screen -r                 (cas d’une fenêtre unique)
$ screen -r  10586      (le screen n°10586)
$ screen -r pluton       (le screen nommé pluton)

Lister les screens de créer
$ screen -ls

Basculer entre screens
CTRL+a  (relâcher) N (où N correspond au numéro de la fenêtre)

Visualiser un screen sur 2 pc (et plus)
créer un screen “toto” sur le pc1
afficher ce screen sur le pc2 avec la commande : $ screen -x toto

Tuer un screen quand on est dedans
$ screen -a (pour l’attacher)
$ exit (pour le tuer et revenir sur le terminal)

Tuer un screen depuis la session générale
$ screen -X -S 28250 kill

Quitter un screen bloqué:
CTRL+a  (relâcher) k

Fail2Ban utilise plus de 90% du CPU

Fail2Ban utilise plus de 90% du CPU

Ce soir je me connecte sur mon serveur Raspberry Pi pour faire un peu de maintenance. Un petit tour sur HTop pour voir comment ronronne le moteur et que vois-je …. 90% du CPU qui travaille pour Fail2Ban!

htop

hypothèse 1 : Une attaque des robots chinois? Je ferme tous les ports, mais le CPU est toujours aussi accaparé!
hypothèse 2 : J’arrête transmission, le CPU bronche pas, toujours aussi haut.
hypothèse3 : Je mets à jour le système en arrêtant transmission car il gênait yaourt qui avait besoin d’un peu de CPU! Mais au redémarrage toujours la même histoire :-/
hypothèse4 : J’ai alors l’idée qu’il travaille vraiment trop pour un pauvre petit Raspberry Pi. Ma dernière intuition était la bonne, car après quelques recherches il existe la commande : ulimit -s 256 à rajouter à la fin du fichier fail2ban.conf pour adapter l’utilisation de fail2ban à la mémoire d’un système à faible mémoire.

Manipulations:

Edition du fichier fail2ban :
$ sudo nano /etc/fail2ban/fail2ban.conf
Ajouter à la fin du fichier :
ulimit -s 256
(si votre système à 256 Mo de mémoire vive par exemple)
Recharger les modifications dans systemd :
$ sudo systemctl daemon-reload