Crontab: fichiers copiés qui disparaissent lorsque l'utilisateur se deconnecte

Tags: #<Tag:0x00007f63e4af6c08>

Bonjour,
Je suis sous Debian 11.

Lors du boot cron copie des fichiers dans le ramdisk /dev/shm/ pour l’utilsateur pmcserver

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
@reboot pmcserver /home/pmcserver/server_start.sh > /home/pmcserver/server_start.txt

ce script copie une partie des fichier dans le ramdisk pour une vitesse accrue. Tous ce passe bien lorsque l’utilisateur se connecte la première fois les fichiers sont là. Mais lorsqu’il se déconnecte les fichiers sont effacé du ramdisk. Si je lance le script en manuel ça ne se produit pas, les fichiers reste dans le ramdisk.
Voici le script start_server.sh

#!/bin/sh

#attendre que le serveur démarre
#sleep 60
#Créer répertoire dans disque ram
mkdir /dev/shm/minecraft
#Copier les fichier dans disque ram
cp -r /home/pmcserver/World_storage/* /dev/shm/minecraft
#FILE = /dev/shm/minecraft/initok.txt
dtf=$(date +"%d%m%Y")
dt=$(date +"%d/%m/%Y %Hh%Mm%Ss")
if [ -f /dev/shm/minecraft/initok.txt ]
then
# Copie dans disque ram ok
echo « [$dt]Initialisation DDRAM ok. » >> « /home/pmcserver/log/cron_$dtf.log »
echo « [$dt]Démarrage serveur mincecraft paper… » >> « /home/pmcserver/log/cron_$dtf.log »
#Lancer serveur minecraft
cd /home/pmcserver/
/home/pmcserver/pmcserver start
else
#Erreur lors de la copie dans disque ram
echo « [$dt]ERREUR: Lors de la copie des fichiers dans DDRAM!!! » >> « /home/pmcserver/log/cron_$dtf.log »>
fi

/dev/shm n’est pas un ramdisk mais un tmpfs. Il est dédié à la mémoire partagée POSIX, je ne pense pas que ce soit l’endroit approprié pour stocker des fichiers quelconques. A mon avis il vaudrait mieux utiliser un autre tmpfs dédié.

Quel utilisateur ? Se connecte à quoi ?

salut
je suis d’accord avec pascalhambourg : commence par créer une partition dédiée.

question annexe : est-ce que ça fait la même chose avec un dossier normal?

Bonjour merci pour vos réponse

pmcserver en ssh dans sa session

Bonne question je vais regardé. Non ça ne le fait pas
Je vais regarder comemnt monter une partition en ram.

Ce tuto vous parait il bien (la section tmpfs)?
https://www.malekal.com/comment-creer-disque-ram-tmpfs-ramfs-linux/

Merci. Je vous tiendrais au courant.

J’ai créer un disque ram comme indiqué dans le tutoriel dont j’ai fourni le lien, ça a l’air de fonctionner.
Encore merci à vous.

J’espère que non car c’est du grand n’importe quoi, et que tu as plutôt créé un tmpfs.

Bonjour,
désolé pour le retard dans ma réponse.
lorsque je tape la commande df -H il m’indique bien que c’est du type tmpfs

tmpfs 1,1G 251M 823M 24% /mnt/ramdisk

Si c’est vraiment fait comme un cochon pourrais tu me donner un lien ou m’expliquer comment faire ça dans les règles de l’art?
encore merci pour tes réponses.

Deux jour ce n’est pas un retard, faut pas exagérer.

Ouf, c’est bien un tmpfs et non un ramdisk. Deux bémols concernant le point de montage cependant :

  1. Le nom « ramdisk » est trompeur puisqu’il s’agit d’un tmpfs et non d’un ramdisk. D’autre part le nom d’un répertoire devrait refléter son contenu et pas son contenant (exemple : /tmp est pour les fichiers temporaires, on ne le renomme pas quand c’est un tmpfs).

  2. /mnt est réservé aux montages temporaires effectués par l’administrateur pour la maintenance. Les points de montage permanents devraient être ailleurs. Reste à trouver l’emplacement le plus approprié en fonction du contenu.

ok merci
est il possible que je le monte directement dans le répertoire utilisateur (pmcserver)? Sont rôle étant juste d’accélérer les transfert du server minecraft sur hdd, un autre script se chargeant a interval regulier de sauvegarder réellemnt le monde sur le raid
je peux le renomer diskspeed :slight_smile:

Bien sûr, si le contenu est à son usage.

Merci pour touts :+1:t3:

Oups, j’ai failli laissé passer ça. « df -H » n’indique pas le type de système de fichiers, il faut l’option « -T » pour cela.
La mention « tmpfs » est ici à la place du périphérique et est arbitraire comme pour tous les systèmes de fichiers virtuels qui ne sont pas associés à un périphérique (procfs, sysfs, tmpfs, devtmpfs…). Cela ne garantit pas que c’est un tmpfs mais au moins que ce n’est pas un ramdisk qui aurait la mention « /dev/ram* » à la place.

1 J'aime

Ok avec l’option -T en plus il m’indique bien que le type est tmpfs

Sys. de fichiers Type Taille Utilisé Dispo Uti% Monté sur
tmpfs tmpfs 1,1G 251M 823M 24% /home/pmcserver/diskspeed

cool le -T