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 **.
Ubuntu 16.04.5 LTS
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
** / 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
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
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/
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