[LINUX] Je souhaite arrêter la suppression automatique de la zone tmp dans RHEL7

(Mémo de correspondance passé)

Je veux empêcher la zone sous / tmp d'être supprimée sans autorisation. Tmpwatch est absent de RHEL7. Il semble que systemd-tmpfiles-clean.timer nettoie la zone tmp.

Le fichier de configuration est ici: /usr/lib/tmpfiles.d/tmp.conf

Copiez ce fichier dans /etc/tmpfiles.d/ Vous voudrez peut-être le réécrire pour exclure / tmp / *.

environnement de test

VM (CetnOS7) (la VM de production est RHEL7) XenServer

Vérification

Confirmer avec la commande man

# man tmpfiles.d
--------------------------------------------
CONFIGURATION FORMAT

Files in /etc/tmpfiles.d override files with the same name in /usr/lib/tmpfiles.d and /run/tmpfiles.d.
Files in /run/tmpfiles.d override files with the same name in /usr/lib/tmpfiles.d.
Packages should install their configuration files in /usr/lib/tmpfiles.d.
Files in /etc/tmpfiles.d are reserved for the local administrator, who may use this logic to override the configuration files installed by vendor packages. 
All configuration files are sorted by their filename in lexicographic order, regardless of which of the directories they reside in.
If multiple files specify the same path, the entry in the file with the lexicographically earliest name will be applied.
All other conflicting entries will be logged as errors.
When two lines are prefix and suffix of each other, then the prefix is always processed first, the suffix later.
Otherwise, the files/directories are processed in the order they are listed.
If the administrator wants to disable a configuration file supplied by the vendor, the recommended way is to place a symlink to /dev/null in /etc/tmpfiles.d/ bearing the same filename.
--------------------------------------------

/etc/tmpfiles.d > /run/tmpfiles.d > /usr/lib/tmpfiles.d Il semble être fort dans cet ordre.

systemd-tmpfiles-clean.timer vérifie tout atime / mtime / ctime, donc Créez simplement un fichier, puis modifiez l'horodatage avec la touche Je ne peux pas confirmer s'il sera supprimé. (Parce que ctime ne peut pas être changé)

Vérifier les paramètres

# cat /usr/lib/tmpfiles.d/tmp.conf
-----------------------------
v /tmp 1777 root root 10d
v /var/tmp 1777 root root 30d

→ /Sous tmp, les choses de plus de 10 jours disparaissent
-----------------------------

Arrêter NTP

# systemctl disable ntpd.service

chronyd s'est également arrêté

# systemctl stop chronyd
# systemctl disable chronyd
Créer un répertoire de fichiers
# cd /tmp/
# touch test
# mkdir miisuke

Vérifiez l'heure
# stat test
Access: 2020-03-27 18:54:15.333822690 +0900
Modify: 2020-03-27 18:54:15.333822690 +0900
Change: 2020-03-27 18:54:15.333822690 +0900

# stat miisuke
Access: 2020-03-27 18:54:27.822006515 +0900
Modify: 2020-03-27 18:54:27.822006515 +0900
Change: 2020-03-27 18:54:27.822006515 +0900

Décaler l'heure du serveur
# date
Vendredi 27 mars 2020 19:09:58 JST

# date -s "03/28 20:00 2030"
# date
Jeudi 28 mars 2030 20:00:02 JST

Créer un fichier à ce stade
# touch test2
# mkdir miisuke2

# stat test2
Access: 2030-03-28 20:00:37.166547096 +0900
Modify: 2030-03-28 20:00:37.166547096 +0900
Change: 2030-03-28 20:00:37.166547096 +0900

# stat miisuke2
Access: 2030-03-28 20:00:39.423580319 +0900
Modify: 2030-03-28 20:00:39.423580319 +0900
Change: 2030-03-28 20:00:39.423580319 +0900

Essayez de redémarrer le serveur
# shutdown -r now

Test et miisuke devraient-ils disparaître?

$ date
Vendredi 27 mars 2020 19:16:12 JST
→ L'heure est revenue après le redémarrage. Est-il synchronisé sur l'hôte xen? ??

Refaire

Rendre le serveur plus ancien
# date -s "03/28 20:00 2010"
# date
Dimanche 28 mars 2010 20:00:01 JST

Créez un fichier ici
# cd /tmp/
# touch test3
# mkdir miisuke3

# stat test3
Access: 2010-03-28 20:01:47.397000000 +0900
Modify: 2010-03-28 20:01:47.397000000 +0900
Change: 2010-03-28 20:01:47.397000000 +0900

# stat miisuke3
Access: 2010-03-28 20:01:50.509000000 +0900
Modify: 2010-03-28 20:01:50.509000000 +0900
Change: 2010-03-28 20:01:50.509000000 +0900

Essayez de redémarrer le serveur
# shutdown -r now

Miisuke3 et test3 devraient-ils disparaître lorsque le temps revient?

# date
Vendredi 27 mars 2020 19:22:41 JST

# ls -l /tmp/
Total 0
drwxr-xr-x 2 racine racine 6 27 mars 18:54 miisuke
drwxr-xr-x 2 racine racine 6 28 mars 2030 miisuke2
drwxr-xr-x 2 racine racine 6 28 mars 2010 miisuke3
-rw-r--r--1 racine racine 0 27 mars 18:54 test
-rw-r--r--1 racine racine 0 28 mars 2030 test2
-rw-r--r--1 racine racine 0 28 mars 2010 test3

Pas disparaître.

Exécutez manuellement le processus de suppression
# SYSTEMD_LOG_TARGET=console SYSTEMD_LOG_LEVEL=debug /usr/bin/systemd-tmpfiles --clean

# ls -l /tmp/
drwxr-xr-x 2 racine racine 6 27 mars 18:54 miisuke
drwxr-xr-x 2 racine racine 6 28 mars 2030 miisuke2
-rw-r--r--1 racine racine 0 27 mars 18:54 test
-rw-r--r--1 racine racine 0 28 mars 2030 test2

Avait disparu.

Essayez d'activer le processus.

Créer un fichier de configuration

# cd /etc/tmpfiles.d/
# cp -pi /usr/lib/tmpfiles.d/tmp.conf .
# vi tmp.conf
----------------
x /tmp/*
x /var/tmp/*
----------------

Rendre le serveur plus ancien
# date -s "03/28 20:00 2010"
# date
Dimanche 28 mars 2010 20:00:02 JST

Créez un fichier ici
# cd /tmp/
# touch test3
# mkdir miisuke3

# stat test3
Access: 2010-03-28 20:00:16.230000000 +0900
Modify: 2010-03-28 20:00:16.230000000 +0900
Change: 2010-03-28 20:00:16.230000000 +0900

# stat miisuke3
Access: 2010-03-28 20:00:19.255000000 +0900
Modify: 2010-03-28 20:00:19.255000000 +0900
Change: 2010-03-28 20:00:19.255000000 +0900

Essayez de redémarrer le serveur
# shutdown -r now

# date
Vendredi 27 mars 2020 19:51:03 JST

# ls -l /tmp/
Il n'a pas encore disparu.

Exécutez manuellement le processus de suppression
# SYSTEMD_LOG_TARGET=console SYSTEMD_LOG_LEVEL=debug /usr/bin/systemd-tmpfiles --clean

# ls -l /tmp/
Total 0
drwxr-xr-x 2 racine racine 6 27 mars 18:54 miisuke
drwxr-xr-x 2 racine racine 6 28 mars 2030 miisuke2
drwxr-xr-x 2 racine racine 6 28 mars 2010 miisuke3
-rw-r--r--1 racine racine 0 27 mars 18:54 test
-rw-r--r--1 racine racine 0 28 mars 2030 test2
-rw-r--r--1 racine racine 0 28 mars 2010 test3

Ça n'a pas disparu!

Mise en œuvre de la production

Implémenté sur le serveur RHEL7

Créer un fichier de configuration

# cd /etc/tmpfiles.d/
# cp -pi /usr/lib/tmpfiles.d/tmp.conf .
# vi tmp.conf
----------------
x /tmp/*
x /var/tmp/*
----------------
# mv tmp.conf aaa_tmp.conf(.Si c'est conf, n'importe quel nom semble bon)

référence

J'ai évoqué ce qui suit.

Différences de comportement entre tmpwatch (jusqu'à CentOS6) et systemd-tmpfiles (CentOS7) Quatre pièges de CentOS 7 auxquels vous devriez être accro et pleurer [Linux] [Cent OS] L'histoire selon laquelle si vous laissez les fichiers sous / tmp et / var / tmp, ils seront supprimés sans autorisation [Linux] Processus de suppression du dossier CentOS 7 tmp How systemd-tmpfiles cleans up /tmp/ or /var/tmp (replacement of tmpwatch) in CentOS / RHEL 7

Recommended Posts

Je souhaite arrêter la suppression automatique de la zone tmp dans RHEL7
Je veux sortir le début du mois prochain avec Python
Je veux vérifier la position de mon visage avec OpenCV!
Je veux exprimer mes sentiments avec les paroles de Mr. Children
Je souhaite personnaliser l'apparence de zabbix
Je veux grep le résultat de l'exécution de strace
Je veux bien comprendre les bases de Bokeh
Je souhaite augmenter la sécurité de la connexion SSH
J'ai essayé de trouver l'entropie de l'image avec python
Je souhaite spécifier une autre version de Python avec pyvenv
J'ai essayé de trouver la moyenne de plusieurs colonnes avec TensorFlow
Je veux obtenir des informations sur le fonctionnement de Yahoo Route
Je veux changer le drapeau japonais en drapeau des Palaos avec Numpy
Je veux colorier des photos en noir et blanc de souvenirs avec GAN
[Python] Je souhaite utiliser l'option -h avec argparse
Je veux déterminer l'authenticité d'un élément du tableau numpy
Je veux connaître la nature de Python et pip
Keras Je veux obtenir la sortie de n'importe quelle couche !!
Je veux connaître la légende du monde des technologies informatiques
Je veux faire ○○ avec les Pandas
Je veux déboguer avec Python
[Pytorch] Je souhaite attribuer manuellement les paramètres d'entraînement du modèle
Je veux connaître la météo avec LINE bot avec Heroku + Python
Familiarisez-vous avec (voulez être) autour du pipeline de spaCy
J'ai essayé d'automatiser l'arrosage du pot avec Raspberry Pi
Je veux lire la version html de la version "OpenCV-Python Tutorials" OpenCV 3.1
[Introduction à StyleGAN] J'ai joué avec "The Life of a Man" ♬
J'ai essayé d'agrandir la taille du volume logique avec LVM
Pour le moment, je veux convertir n'importe quel fichier avec ffmpeg !!
Je veux connaître la population de chaque pays du monde.
J'ai essayé d'améliorer l'efficacité du travail quotidien avec Python
Je souhaite extraire une URL arbitraire de la chaîne de caractères de la source html avec python
Je veux épingler Spyder à la barre des tâches
Je veux détecter des objets avec OpenCV
Je veux sortir froidement sur la console
Je veux gérer la rime part1
Je veux écrire un blog avec Jupyter Notebook
Je veux gérer la rime part3
Je veux installer Python avec PythonAnywhere
Je veux jouer avec aws avec python
Je veux afficher la barre de progression
Je veux gérer la rime part2
Je veux gérer la rime part5
Je veux gérer la rime part4
Arrêter le démarrage automatique d'Apache Nginx
Je veux le faire avec Python lambda Django, mais je vais m'arrêter
Je ne veux pas l'admettre ... Représentation dynamique du système de Neural Network
[Reconnaissance d'image] Comment lire le résultat de l'annotation automatique avec VoTT
Je veux convertir par lots le résultat de "chaîne de caractères" .split () en Python
Je veux expliquer en détail la classe abstraite (ABCmeta) de Python
J'ai essayé d'obtenir le code d'authentification de l'API Qiita avec Python.
Je souhaite trier une liste dans l'ordre des autres listes
J'ai essayé d'extraire automatiquement les mouvements des joueurs Wiire avec un logiciel
Je veux analyser les sentiments des gens qui veulent se rencontrer et trembler
J'ai essayé d'analyser la négativité de Nono Morikubo. [Comparer avec Posipa]
Je veux prédire le succès des joueurs NBA utilisant le SDK Qore
J'ai essayé de rationaliser le rôle standard des nouveaux employés avec Python
J'ai essayé de visualiser le texte du roman "Weather Child" avec Word Cloud