[LINUX] Effacez le cron.log régulièrement pour l'empêcher de se développer.

introduction

Exécutez périodiquement les commandes exécutées par ** cron ** (c'est-à-dire les commandes définies par ** crontab -e **) sur ** /var/log/cron.log ** à l'aide du service ** rsyslog **. Après avoir configuré pour écrire, ce fichier journal sera écrit pour toujours, et je me suis demandé si la capacité augmenterait, donc le processus d'effacement régulier du fichier ** / var / log / cron.log ** J'ai décidé de le configurer avec ** cron **.

environnement

Ubuntu 16.04.5 LTS

Ce que j'ai essayé 1

Je veux juste supprimer le fichier journal et laisser cron planifier la commande suivante. Bien sûr, il a supprimé le fichier journal, mais il s'avère que le fichier journal ne sera jamais créé à moins que le service rsyslog ne soit redémarré. De plus, il ne peut pas être supprimé sans les privilèges root. Par conséquent, cette méthode est morte.

rm /var/log/cron.log

Ce que j'ai essayé 2

** / var / log / cron.log ** Même si j'efface le contenu et en fait un fichier vide de 0 Ko en quittant le fichier, il s'avère que je ne peux pas écrire sans l'autorité root.

cp /dev/null /var/log/cron.log

Pour exécuter une commande avec sudo spécifié dans cron (Stumbling with vim)

En éditant ** visudo **, il s'est avéré que la commande avec sudo spécifié peut être exécutée par cron, alors essayons-le.

sudo visudo

Sur Ubuntu, lorsque vous affichez visudo, ** nano ** démarre par défaut, alors changez-le en ** vim **.

sudo update-alternatives --config editor

Article de référence https://qiita.com/koara-local/items/35b999631b6ab41fdc9f

Dans mon environnement, il y a deux vims, ** vim.nox ** et ** vim.tiny **, mais comme vim.nox est affiché par la commande suivante, sélectionnez vim.nox. Je le ferai. (Sélectionnez 3 sur l'écran)

ls -l /etc/alternatives/vi
/etc/alternatives/vi -> /usr/bin/vim.nox

Après avoir changé pour vim.nox, confirmez qu'il a été modifié à nouveau.

sudo update-alternatives --config editor

Il est maintenant affiché dans vim au lieu de nano.

sudo visudo

Pour exécuter une commande avec sudo spécifié dans cron (discussion sur la façon de le faire)

Il existe deux façons de modifier visudo, l'une consiste à modifier directement visudo et l'autre à créer un ** drop-in ** sans toucher à visudo. La commande suivante recherchera un fichier et un répertoire. Lorsque vous éditez visudo, le fichier ** / etc / sudoers ** est édité, mais si vous définissez un fichier avec uniquement les lignes que vous souhaitez éditer sous le répertoire ** / etc / sudoers.d **, le fichier sudoers sera créé. Il semble que le mécanisme d'insertion vous permette de personnaliser sans le toucher. Certaines personnes recommandent un accès direct, mais j'ai décidé de modifier directement visudo.

ls /etc | grep sudo

Article de référence https://www.teradas.net/archives/13222/

Pour exécuter une commande avec sudo spécifié dans cron (Modification de visudo)

Article de référence https://www.bloguchi.info/1846 https://www.crossl.net/blog/crontab/

Lorsque j'ai recherché sur Google, ** Valeurs par défaut: utilisateur requise ** est décrite par défaut, veuillez donc décrire ** Valeurs par défaut: utilisateur! Requête ** et désactiver ** Par défaut: utilisateur requise ** Cependant, dans les distributions basées sur RedHat, ** Defaults: user Requetty ** est décrit par défaut, mais dans les distributions basées sur Debian, cela n'est pas décrit par défaut. Ce n'était certainement pas dans mon environnement.

sudo visudo

Alors, ajoutez seulement cette ligne. Recherchez le chemin de la commande ** cp ** avec ** which cp **.

user ALL=(root)   NOPASSWD: /bin/cp

Article de référence https://orebibou.com/2017/06/sudo%E3%81%A7%E8%A6%9A%E3%81%88%E3%81%A6%E3%81%8A%E3%81%8F%E3%81%A8%E4%BE%BF%E5%88%A9%E3%81%AA%E8%A8%AD%E5%AE%9A%E3%83%BB%E4%BD%BF%E3%81%84%E6%96%B9/#Defaults

** crontab -e **, testez cette ligne avec sudo.

*/1 * * * * sudo cp /dev/null /var/log/cron.log

Certes, j'ai pu confirmer que la taille du fichier était petite. (Il a été confirmé que la commande avec sudo a été exécutée)

ls -l /var/log/cron.log

C'est fini :sweat_smile:

Recommended Posts

Effacez le cron.log régulièrement pour l'empêcher de se développer.
Ajoutons-le à la variable d'environnement à partir de la commande ~
Comment prendre une capture d'écran de l'écran Chrome (l'empêcher de se couper au milieu)
De l'introduction de l'API GoogleCloudPlatform Natural Language à son utilisation
Pour la première fois dans Numpy, je vais le mettre à jour de temps en temps
[python] Envoyez l'image capturée de la caméra Web au serveur et enregistrez-la
Est-il possible d'extraire les informations de profil de la personne du journal de discussion?
Comment faire fonctionner Linux depuis la console
Comment accéder à la banque de données de l'extérieur
Faites quelque chose régulièrement de Heroku à Shotgun
Modifiez le point décimal de la journalisation de, à.
Comment faire fonctionner Linux depuis l'extérieur Procédure
POST des images depuis ESP32-CAM (MicroPython) vers le serveur
Comment mesurer la vitesse de la ligne depuis le terminal
De l'introduction de pyethapp à l'exécution du contrat
Histoire de passer de Pipenv à la poésie