Trucs et astuces, volume 2

Salut les filles, une petite louche de trucs et astuces ?

A Link to the Past

J’ai fait une erreur stratégique lorsque je suis arrivé dans mon nouveau job il y a un an, j’ai choisi comme nom d’utilisateur bar alors que d’habitude c’est foo. Malheureusement certains fichiers de configuration contiennent le nom d’utilisateur en dur, très pénible si on veut synchroniser les fichiers de conf entre pc. Une astuce à avoir en tête : sudo ln -s /home/bar /home/foo.

Firefox

Dans le about:config de Firefox je suis à la cool, je mets media.autoplay.enabled false parce que j’en ai marre des vidéos qui se lancent sans mon avis et mousewheel.with_control.action 1 parce que j’en ai marre de zoomer/dézoomer par erreur avec la touche Ctrl appuyée. Il y en a d’autres qui font ça plus sérieusement.

Dans Mieux utiliser la barre d’adresse de Firefox je vous expliquais mon workflow hautement basé sur les favoris/bookmarks. Il faut savoir que les bookmarklets javascript ne sont pas affichés par défaut dans la barre d’adresse, il faut browser.urlbar.filter.javascript false.

Stopper rsyslog

On peut souhaiter ne rien vouloir loguer pour éviter des écritures genre sur la carte SD d’une Raspberry Pi : systemctl stop syslog.socket rsyslog.service. La difficulté est de ne pas oublier d’arrêter le socket. Sur un serveur parfois les logs remplissent /var, ça permet au brave sysadmin de corriger le tir.

syncthing

L’outil de synchronisation syncthing peut tourner en tant que service. Pour l’activer systemctl enable syncthing@monjolinomdutilisateur.service, pour le démarrer systemctl start syncthing@monjolinomdutilisateur.service.

Si comme moi vous utilisez un nœud (node) syncthing sur un serveur headless (sans interface graphique), on peut toujours se servir de SSH pour le configurer graphiquement ssh -N -L 9090:127.0.0.1:8384 -i ~/.ssh/id_ed25519_pi -p 2222 pi@192.168.1.30 après quoi vous ouvrez votre navigateur sur 127.0.0.1:9090. Une fois que c’est fini vous fermez la connexion SSH avec Ctrl+c.

Pour trouver les fichiers qui ont des conflits de synchronisation find ~/Sync -name *sync-conflict-* et pour tous les supprimer find ~/Sync -name *sync-conflict-* -exec rm '{}' +;.

Retrouver son petit dans un réseau local

J’ai la flemme de me connecter sur la box pour savoir quelle adresse IP un périphérique chope en DHCP du coup nmap -sP 192.168.1.0/24. Si on ne connait pas la plage à scanner, on la retrouve avec ip a. L’avantage étant que ces commandes sont simples à retenir.

Cron au démarrage

La syntaxe cron pour lancer une tâche au boot est peu connue : @reboot. Je m’en sers pour faire une sauvegarde du pc portable 20 mn après le démarrage.
@reboot monjolinomdutilisateur sleep 1200 && /bin/bash ~/scripts/borg_backup.sh > ~/logs/borg_backup.log 2>&1

Lister les disques avec classe

for device in /dev/sd?; do echo $device; smartctl -i $device | grep 'Model\|Serial\|Firmware\|Capacity'; done; et paf, ça fait des Chocapic !

Vous devrez peut-être rajouter sudo devant smartctl (et évidemment apt install smartmontools).

for device in /dev/sd?; do echo $device; sudo smartctl -i $device | grep 'Model\|Serial\|Firmware\|Capacity'; done;
/dev/sda
Model Family:     Indilinx Barefoot_2/Everest/Martini based SSDs
Device Model:     OCZ-VERTEX4
Serial Number:    OCZ-07613G13Z3ZGF8CD
Firmware Version: 1.5
User Capacity:    128 035 676 160 bytes [128 GB]
/dev/sdb
Model Family:     Seagate Barracuda 7200.14 (AF)
Device Model:     ST1000DM003-1ER162
Serial Number:    S4Y34AQ3
Firmware Version: CC45
User Capacity:    1 000 204 886 016 bytes [1,00 TB]
/dev/sdc
Model Family:     Samsung based SSDs
Device Model:     Samsung SSD 850 PRO 256GB
Serial Number:    S251NSAG412256S
Firmware Version: EXM02B6Q
User Capacity:    256 060 514 304 bytes [256 GB]

Mais si vous voulez plus simple :
ls /dev/sd*[a-z] # Montre juste les disques, ignore les partitions. Exemple : /dev/sda
ls /dev/sd* # Montre les partitions. Exemple : /dev/sda /dev/sda1

ncdu

ncdu est vraiment un outil sensationnel, un indispensable pour moi. Il recèle quelques pépites à connaître.

On a souvent plusieurs partitions sur Linux /, /var, /home… comment ne parcourir que le système de fichiers actuel ? ncdu -x / (-x, Do not cross filesystem boundaries, i.e. only count files and directories on the same filesystem as the directory being scanned). À ce sujet je vous rappelle l’option -l (limit listing to local file systems) de df, df -lh évite de lister les montages NFS par exemple.

Quelques commandes extrêmement utiles pour transmettre le résultat d’un ncdu à un collègue et/ou lui permettre de naviguer dans l’arborescence comme si il était sur le serveur.

ncdu -o ncdu.file / # Exporter le résultat d’un ncdu dans un fichier
ncdu -f ncdu.file # Lire le résultat à partir d’un fichier
ncdu --exclude onsenfoutdecedossier -o- | gzip > ncdu.file.gz # Exporter le résultat d’un ncdu en le compressant à la volée dans un fichier
zcat ncdu.file.gz | ncdu -f- # Lire le résultat à partir d’un fichier compressé

La Bible

Rappelons à tous la Bible Bash : The Bash Hackers Wiki. J’aime relire le soir au coin du feu les quelques lignes qui m’ont montré la voie, il ne faut plus utiliser les backticks ` mais $(COMMANDS) ni &>LOGFILE mais >LOGFILE 2>&1.

Que la paix soit avec vous mes frères et sœurs !

Déjà 4 avis pertinents dans Trucs et astuces, volume 2

  • Pour les sauvegardes, j’ai personnellement placé un script /etc/cron.daily/backup.sh. Si on a anacron qui tourne (souvent fourni avec la plupart des services cron), il lancera une fois par jour maximum, et à défaut, quelques instants après le boot de la machine. Par exemple, tous les jours à 11h, mais si ton PC était éteins à 11h, il le fera dès que possible, à 15h par exemple. Et si il est éteins plusieurs jours, il ne fera qu’une seule fois la tâche quand tu le rallumeras. Ça vaut aussi pour cron.weekly et cron.monthly. C’est très pratique.

Les commentaires sont fermés.