Bonjour, je cherche une solution pour appliquer un quota sur /tmp (total et non par utilisateur) sans avoir a lui attribuer une partition.
Est ce que ca existe?
Salut
j’ai activé le montage de /tmp en temporaire dans la RAM. Gain de place sur le disque et rapidité d’exécution
systemctl enable tmp.mount
systemctl start tmp.mount
df -hT
Sys. de fichiers Type Taille Utilisé Dispo Uti% Monté sur
udev devtmpfs 1,8G 0 1,8G 0% /dev
tmpfs tmpfs 370M 12M 359M 4% /run
/dev/sda1 ext4 19G 13G 5,3G 71% /
tmpfs tmpfs 1,9G 22M 1,8G 2% /dev/shm
tmpfs tmpfs 5,0M 0 5,0M 0% /run/lock
tmpfs tmpfs 1,9G 0 1,9G 0% /sys/fs/cgroup
tmpfs tmpfs 1,9G 8,0K 1,9G 1% /tmp
/dev/sda6 ext4 268G 198G 57G 78% /home
tmpfs tmpfs 370M 20K 370M 1% /run/user/1001
free -mh
total used free shared buff/cache available
Mem: 3,6Gi 1,6Gi 490Mi 30Mi 1,5Gi 1,7Gi
Swap: 7,5Gi 4,0Mi 7,5Gi
Bonne idée, j’aurais du précisé que c’était pour une instance serveur. Ma quantité de RAM c’est la taille de la partition /tmp au dessus
donc je peux pas trop le monter dans la RAM
A ma connaissance, les quota standard ne s’appliquent qu’aux utilisateurs et groupes. Je vois mal comment ils pourraient s’appliquer à des répertoires qui ne sont que des catalogues de fichiers. Un même fichier peut être lié à plusieurs répertoires, alors comment le compterait-on ?
Les sous-volumes et groupes de quotas de btrfs pourraient apporter une solution, à condition d’utiliser ce système de fichiers. Mais je connais mal.
Un système de fichiers peut être créé dans autre chose qu’une partition : en mémoire (tmpfs), dans un simple fichier (monté en loop), un volume logique LVM s’il y a un groupe de volume avec de l’espace libre…
Quelle partition /tmp ? Je croyais qu’il n’y en avait pas.
Le contenu d’un tmpfs peut être swappé, contrairement à celui d’un ramdisk. Donc si le système a suffisamment de swap, tu peux créer un tmpfs de la taille de la RAM voire plus.
autant pour moi je voulais dire "répertoire"
résultat d’un df -hT
tmpfs 201M 34M 167M 17% /run
/dev/vda 46G 4,2G 40G 10% /
tmpfs 1001M 0 1001M 0% /dev/shm
tmpfs 5,0M 0 5,0M 0% /run/lock
tmpfs 1001M 0 1001M 0% /sys/fs/cgroup
tmpfs 201M 0 201M 0% /run/user/1000
Je crois que j’ai une idée. Comment faire pour forcer le vidage de tmp?
Sinon je fais un petit cron qui vérifie la taille du dossier et le vide si besoin?
Il s’agit donc d’une sorte de machine virtuelle ou de conteneur type LXC.
Normalement /tmp est vidé automatiquement au démarrage du système.
Mauvaise idée, à mon avis.
D’une part, si on doit s’attendre à ce que le contenu de /tmp ne soit pas préservé après un reboot (par “on” je désigne le système, les services, les applications et ceux qui les développent), cela ne veut pas dire qu’il peut être effacé à n’importe quel moment.
D’autre part, les fichiers ouverts en cours d’utilisation ne seront pas réellement effacés ; ils ne seront plus visible dans /tmp, mais continueront à occuper de l’espace disque tant qu’ils ne seront pas fermés.
Si on commençait par le début : pourquoi veux-tu limiter l’espace disque occupé par /tmp (si j’ai bien compris ce que tu veux) ?
c’est une instance scaleway, les serveur sont séparés des baies des disques dur. Il me semble qu’ils utilisent docker, mais comme je connais mal docker j’ai pas cherché plus loin.
La problématique c’est que souvent sur les instances cloud on a pas la possibilité d’installer la distro de base, les images des distributions linux sont souvent rebidouillées. Et donc on a pas la possibilité de reformater et/ou repartitionner le tout.
sachant qu’il est préférable de partitionner un minimum sur les serveurs, pour éviter par exemple qu’un user surcharge le serveur en fichier temporaire et ne me freeze le tout, je me demandais si je ne pouvais pas contourner le partitionnement par un autre moyen.
Bon après s’il y en a pas c’est pas si grave, je retiendrais que les instances c’est pas forcément ce qu’il y a de mieux.
il existe l’utilitaire tmpreaper qui permets de supprimer les fichiers antérieur a une certaine date, 7 jours par exemple
cat /etc/tmpreaper.conf
# tmpreaper.conf
# - local configuration for tmpreaper's daily run
#
# This is only used if /etc/cron.daily/tmpreaper was also updated,
# i.e. there's a line ". /etc/tmpreaper.conf" in that file.
# The shell code that used to be here (pre version 1.6.7) is now
# in the cron.daily script.
# Remove the next line if you understand the possible security implications of
# having tmpreaper run automatically;
# see /usr/share/doc/tmpreaper/README.security.gz
SHOWWARNING=false
# TMPREAPER_TIME
# is the max. age of files before they're removed.
# default:
# the TMPTIME value in /etc/default/rcS if it's there, else
# TMPREAPER_TIME=7d (for 7 days)
# I recommend setting the value in /etc/default/rcS, as
# that is used to clean out /tmp whenever the system is booted.
#
# TMPREAPER_PROTECT_EXTRA
# are extra patterns that you may want to protect.
# Example:
# TMPREAPER_PROTECT_EXTRA='/tmp/isdnctrl* /tmp/important*'
#
# TMPREAPER_DIRS
# are the directories to clean up.
# *never* supply / here! That will wipe most of your system!
# Example:
# TMPREAPER_DIRS='/tmp/. /var/tmp/.'
#
# TMPREAPER_DELAY
# defines the maximum (randomized) delay before starting processing.
# See the manpage entry for --delay. Default is 256.
# Example:
# TMPREAPER_DELAY='256'
#
# TMPREAPER_ADDITIONALOPTIONS
# extra options that are passed to tmpreaper, e.g. --all
# uncomment and change the next line to overrule the /etc/default/rcS value
TMPREAPER_TIME=7d
TMPREAPER_PROTECT_EXTRA=''
TMPREAPER_DIRS='/var/tmp/. /home/guy/.cache/.'
TMPREAPER_DELAY='256'
TMPREAPER_ADDITIONALOPTIONS=''
je m’en sers aussi pour nettoyer le cache, c’est lancé par la crontab /etc/cron.daily/tmpreaper