(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 / *.
VM (CetnOS7) (la VM de production est RHEL7) XenServer
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!
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)
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