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/sdals /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 fichierncdu -f ncdu.file
# Lire le résultat à partir d’un fichierncdu --exclude onsenfoutdecedossier -o- | gzip > ncdu.file.gz
# Exporter le résultat d’un ncdu en le compressant à la volée dans un fichierzcat 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 !