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

**URL:** <https://www.debian-fr.org/t/un-demon-pour-gerer-mon-bac-a-sable/79528>\
**Category:** Programmation\
**Created:** [Juin 27, 2019, 3:28 UTC](https://www.debian-fr.org/t/un-demon-pour-gerer-mon-bac-a-sable/79528 "2019-06-27T15:28:00Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Usinaquoi](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/u/51bf81/32.png) [@Usinaquoi](https://www.debian-fr.org/u/Usinaquoi)\
**Post date:** [Juin 27, 2019, 3:28 UTC](https://www.debian-fr.org/t/un-demon-pour-gerer-mon-bac-a-sable/79528/1 "2019-06-27T15:28:00Z")

</div>

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](https://drive.google.com/drive/folders/1KQ6hSZ7PmzklFSc-tzVXGLjQYRCifjje?usp=sharing).

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).

---

<div class="post-metadata">

**Author:** ![Usinaquoi](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/u/51bf81/32.png) [@Usinaquoi](https://www.debian-fr.org/u/Usinaquoi)\
**Post date:** [Juin 27, 2019, 4:13 UTC](https://www.debian-fr.org/t/un-demon-pour-gerer-mon-bac-a-sable/79528/2 "2019-06-27T16:13:35Z")

</div>

```nohighlight
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:

```nohighlight
$ 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

```
