Führen Sie regelmäßig Befehle aus, die von ** cron ** ausgeführt werden (dh Befehle, die von ** crontab -e ** festgelegt wurden), und verwenden Sie den Dienst ** rsyslog ** für ** /var/log/cron.log **. Nach der Einstellung zum Schreiben wird diese Protokolldatei für immer geschrieben, und ich habe mich gefragt, ob die Kapazität zunehmen würde, sodass die Datei ** / var / log / cron.log ** regelmäßig gelöscht wird Ich habe beschlossen, es mit ** cron ** einzustellen.
Ubuntu 16.04.5 LTS
Ich möchte nur die Protokolldatei löschen und cron den folgenden Befehl planen lassen. Sicher, es hat die Protokolldatei gelöscht, aber es stellt sich heraus, dass die Protokolldatei nur erstellt wird, wenn der rsyslog-Dienst neu gestartet wird. Darüber hinaus kann es nicht ohne Root-Rechte gelöscht werden. Daher ist diese Methode tot.
rm /var/log/cron.log
** / var / log / cron.log ** Selbst wenn ich den Inhalt lösche und beim Verlassen der Datei eine leere Datei von 0 KB mache, stellt sich heraus, dass ich nicht ohne Rootberechtigung schreiben kann.
cp /dev/null /var/log/cron.log
Beim Bearbeiten von ** visudo ** stellte sich heraus, dass der Befehl mit dem angegebenen sudo von cron ausgeführt werden kann. Versuchen wir es also.
sudo visudo
Wenn Sie unter Ubuntu visudo anzeigen, wird ** nano ** standardmäßig gestartet. Ändern Sie es daher in ** vim **.
sudo update-alternatives --config editor
Referenzartikel https://qiita.com/koara-local/items/35b999631b6ab41fdc9f
In meiner Umgebung gibt es zwei vims, ** vim.nox ** und ** vim.tiny **. Da vim.nox jedoch mit dem folgenden Befehl angezeigt wird, wählen Sie vim.nox aus. Ich werde das machen. (Wählen Sie 3 auf dem Bildschirm)
ls -l /etc/alternatives/vi
/etc/alternatives/vi -> /usr/bin/vim.nox
Vergewissern Sie sich nach dem Wechsel zu vim.nox, dass es erneut geändert wurde.
sudo update-alternatives --config editor
Es wird jetzt in vim anstelle von nano angezeigt.
sudo visudo
Es gibt zwei Möglichkeiten, Visudo zu bearbeiten: Eine besteht darin, Visudo direkt zu bearbeiten, und die andere darin, ein ** Drop-In ** zu erstellen, ohne Visudo zu berühren. Der folgende Befehl sucht nach einer Datei und einem Verzeichnis. Wenn Sie visudo bearbeiten, wird die Datei ** / etc / sudoers ** bearbeitet. Wenn Sie jedoch eine Datei mit nur den Zeilen festlegen, die Sie im Verzeichnis ** / etc / sudoers.d ** bearbeiten möchten, wird die Datei sudoers erstellt. Es scheint, dass Sie mit dem Drop-In-Mechanismus Anpassungen vornehmen können, ohne ihn zu berühren. Einige Leute empfehlen Drop-In, aber ich habe beschlossen, Visudo direkt zu bearbeiten.
ls /etc | grep sudo
Referenzartikel https://www.teradas.net/archives/13222/
Referenzartikel https://www.bloguchi.info/1846 https://www.crossl.net/blog/crontab/
Wenn ich gegoogelt habe, wird ** Standard: Benutzeranforderung ** standardmäßig beschrieben. Beschreiben Sie daher bitte ** Standardeinstellungen: Benutzer! Erforderlich ** und deaktivieren Sie ** Standardeinstellungen: Benutzeranforderung **. In RedHat-basierten Distributionen wird jedoch standardmäßig ** Defaults: user requireetty ** beschrieben, in Debian-basierten Distributionen wird dies jedoch nicht standardmäßig beschrieben. Sicher war es nicht in meiner Umgebung.
sudo visudo
Fügen Sie also nur diese eine Zeile hinzu. Suchen Sie nach dem Pfad des Befehls ** cp ** mit ** dem cp **.
user ALL=(root) NOPASSWD: /bin/cp
Referenzartikel 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 **, füge diese eine Zeile mit sudo hinzu.
*/1 * * * * sudo cp /dev/null /var/log/cron.log
Natürlich konnte ich bestätigen, dass die Dateigröße klein war. (Es wurde bestätigt, dass der Befehl mit sudo ausgeführt wurde)
ls -l /var/log/cron.log
C'est fini :sweat_smile:
Recommended Posts