Un démon pour gérer mon bac à sable


#1

Salut,

voici quelques scripts que je vous donne à lire, en vue de conseils, corrections, optimisations ou toutes autres remarques bienvenues.

Objectif:

Travailler sur RAM pour éviter les écritures disques inutiles, sauvegarder à bon escient une fois fait le ménage. J’ai pas développé tout ce que ça sous-entend mais ça prend forme.

  • J’ai donc un script qui lance le daemon au démarrage, /etc/init.d/bacasable
  • Le script lui-même qui va tourner en tâche de fond, /usr/local/bin/bacasabled(.sh)
  • Un fichier de configuration, /usr/local/etc/bacasable.conf

Concernant init.d, j’y ai à peine toucher en reprenant un script lambda déjà présent.
je maîtrise pas du tout, et je crois avoir deviné à juste titre que c’est pas parce qu’on fait un start-stop-daemon que le script appelé va tourner en démon, j’ai supposé qu’il devait en lui contenir la boucle infernale.
Concernant le fichier de config, c’est comme tout les fichiers de config pour faciliter le paramétrage à volonté et le rendre adaptable partout pour n’importe qui. Mais je me suis peut-être un peu étendu en définition de variables peu utiles si on remaniait le scripts, je sais pas.
Concernant le script qui tourne en continu, j’ai surtout voulu utiliser inotify et ses diverses possibilités mais là aussi je maîtrise pas grand chose. Par exemple, il m’est arrivé d’envoyer inotifywait dans une boucle while contenant un code censé écrire dans le fichier surveillé, mais ça ne fonctionnait pas, si bien que parfois j’ai fait un simple while, les méthodes sont un peu mélangées en fonction de ce qui marchait au moment où je le scriptais. Et comme parfois j’étais pressé que ça marche, j’arrêtais d’explorer pour m’en tenir à ce qui marche, à moitié satisfait en fait. (peut-etre il y avait juste un problème de permission à un moment que je n’ai pas vu, bref).

Tout ça pour dire que c’est une ébauche, mais ça me permet de travailler déjà comme je voulais, c’est à dire sur la RAM au lieu du SSD.
Pour l’instant je ne passe par par init.d, donc pas de PID file, mais pas grave, phase de test. Je lance bacasabled à la main en console.
Je monte aussi à la main le répertoire dans la RAM (mais il est prévu de le monter dans le script, ou mieux, dans fstab je suppose). Je copie le fichier sur lequel je travaille manuellement aussi, soit par cp, soit par drop dans mon nav de fichier.
C’est généralement un fichier d’1 Go, après quelques heures de taf. Oui, l’audio ça prend de la place.

Voici le liens vers le dossier contenant les scripts.

PS: globalement ça fonctionne, le script en lui-même lancé en console. Si d’aventure quelqu’un avait l’idée de le tester chez lui, heu, vous êtes censés savoir ce que vous faites et ce que fait le script, lol.

je précise que je suis pas coutumier de rsync (d’ailleurs pour l’instant j’ai commenté la commande, mais ça fonctionne bien à priori).


#2
Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur
udev               7,8G       0  7,8G   0% /dev
tmpfs              1,6G     18M  1,6G   2% /run
/dev/sda1           28G     11G   15G  43% /
tmpfs              7,9G    113M  7,7G   2% /dev/shm
tmpfs              5,0M    4,0K  5,0M   1% /run/lock
tmpfs              7,9G       0  7,9G   0% /sys/fs/cgroup
/dev/sda7          4,0G     17M  3,8G   1% /tmp
/dev/sda8           48G    923M   45G   3% /home
/dev/sda5           28G    4,0G   23G  16% /var
/dev/sdb2           46G     53M   44G   1% /var/www
/dev/sdb3          160G     61M  152G   1% /home/denis/projets
...
tmpfs              1,6G    4,0K  1,6G   1% /run/user/111
tmpfs              1,6G    104K  1,6G   1% /run/user/1000
...
/dev/sdc7          1,9G    5,7M  1,7G   1% /home/bacasable
tmpfs              1,9G    1,1G  825M  57% /home/denis/bacasable

pardon j’ai omis de préciser dh -f (c’est plus clair sans doute avec). Et les permissions mais je pense pas qu’ici c’est un souci:

$ ls -al /home/denis/bacasable/ /home/bacasable
/home/bacasable:
total 32
drwxrwxrwt 2 root  root  4096 juin  27 08:09 .
drwxr-xr-x 7 root  root  4096 juin  22 13:14 ..
-rw-r--r-- 1 denis denis    0 juin  26 23:01 backup.log
-rw-r--r-- 1 denis denis 5302 juin  27 09:20 daemon.log
-rw-r--r-- 1 denis denis  156 juin  26 17:08 daemon.log.old
/home/denis/bacasable/:
total 4
drwxrwxrwt  3 denis denis   60 juin  27 08:13 .
drwxr-xr-x 36 denis denis 4096 juin  27 07:24 ..
drwxr-xr-x  9 denis denis  280 juin  27 08:40 gros_fic