Как я могу очистить файлы журналов с помощью задания cron на WSL?

Где находится каталог журнала в WSL?

Кажется, что нет такой директории, как /var/log/.

Моя цель - запустить эту ежедневную команду * nix cron: [ ! d2] 0 0 * * * cat /dev/null > /var/mail/* /var/log/*

0
задан 15 January 2018 в 10:38

3 ответа

/var/log находится в /var/log (по крайней мере, в версии 16.04.3 LTS, которую я только что установил в своей системе Windows).

$ ls -l /var/log
total 304
drwxr-xr-x 0 root root    512 Sep 22 18:15 apt
-rw-rw---- 1 root utmp      0 Sep 22 18:15 btmp
drwxr-xr-x 0 root root    512 Jul 19 01:29 dist-upgrade
-rw-r--r-- 1 root root  12794 Sep 22 18:15 dpkg.log
drwxr-xr-x 0 root root    512 Sep 22 18:13 fsck
-rw-rw-r-- 1 root utmp 292292 Jan 14 19:58 lastlog
drwxr-xr-x 0 root root    512 Aug 23 04:06 lxd
drwxr-x--- 0 root adm     512 Aug  1 04:46 unattended-upgrades
-rw-rw-r-- 1 root utmp      0 Sep 22 18:15 wtmp

Но вы не сможете перенаправить ваш вывод в список файлов и подкаталогов (как я уже говорил вам в комментариях).

Вы можете очистить все файлы журнала с помощью следующего cronjob (для root):

find /var/log -type f -exec truncate -s 0 {} \;

5
ответ дан 22 May 2018 в 15:32
  • 1
    Конечно, вход не может быть перенаправлен в каталог, а в файл в каталоге. Мне нужно спросить ваше извинение, я смутил /var/log dir (который также доступен моему WSL) с файлом - я рассматривал его так, как если бы это был файл. Например, я могу сделать rm -rf, чтобы удалить эти каталоги, хотя системный администратор рекомендовал мне перенаправить /dev/null в файлы внутри них. Что-то я действительно хочу. – Arcticooling 15 January 2018 в 00:24
  • 2
    Ваша команда find не будет работать так, как вы думаете. > будет обрабатываться оболочкой до запуска find, поэтому выполняемая команда будет find /var/log -type f -exec echo -n \;, при этом весь stdout перенаправляется в файл с именем {}. Вероятно, вы хотите что-то вроде -exec truncate -s 0 {} \; или -exec sh -c 'echo -n > "$1"' _ {} \; – muru 15 January 2018 в 11:12
  • 3
    @muru Спасибо, я исправил свой ответ. – muclux 15 January 2018 в 11:17
  • 4
    @muclux ah, похоже, я отредактировал свой комментарий после того, как вы его увидели, это должно быть truncate -s 0 {} \; (Извините!) – muru 15 January 2018 в 11:18
  • 5
    @muru. Моя ошибка, я должен был проверить, как работает усечение (я не знал эту команду). – muclux 15 January 2018 в 11:27

/var/log находится в /var/log (по крайней мере, в версии 16.04.3 LTS, которую я только что установил в моей системе Windows).

$ ls -l /var/log total 304 drwxr-xr-x 0 root root 512 Sep 22 18:15 apt -rw-rw---- 1 root utmp 0 Sep 22 18:15 btmp drwxr-xr-x 0 root root 512 Jul 19 01:29 dist-upgrade -rw-r--r-- 1 root root 12794 Sep 22 18:15 dpkg.log drwxr-xr-x 0 root root 512 Sep 22 18:13 fsck -rw-rw-r-- 1 root utmp 292292 Jan 14 19:58 lastlog drwxr-xr-x 0 root root 512 Aug 23 04:06 lxd drwxr-x--- 0 root adm 512 Aug 1 04:46 unattended-upgrades -rw-rw-r-- 1 root utmp 0 Sep 22 18:15 wtmp

Но вы не сможете перенаправить ваш вывод в список файлов и подкаталогов (как я уже говорил вам в комментариях).

Вы можете очистить все файлы журнала с помощью следующего cronjob (для root):

find /var/log -type f -exec truncate -s 0 {} \;

5
ответ дан 17 July 2018 в 23:04

/var/log находится в /var/log (по крайней мере, в версии 16.04.3 LTS, которую я только что установил в своей системе Windows).

$ ls -l /var/log total 304 drwxr-xr-x 0 root root 512 Sep 22 18:15 apt -rw-rw---- 1 root utmp 0 Sep 22 18:15 btmp drwxr-xr-x 0 root root 512 Jul 19 01:29 dist-upgrade -rw-r--r-- 1 root root 12794 Sep 22 18:15 dpkg.log drwxr-xr-x 0 root root 512 Sep 22 18:13 fsck -rw-rw-r-- 1 root utmp 292292 Jan 14 19:58 lastlog drwxr-xr-x 0 root root 512 Aug 23 04:06 lxd drwxr-x--- 0 root adm 512 Aug 1 04:46 unattended-upgrades -rw-rw-r-- 1 root utmp 0 Sep 22 18:15 wtmp

Но вы не сможете перенаправить ваш вывод в список файлов и подкаталогов (как я уже говорил вам в комментариях).

Вы можете очистить все файлы журнала с помощью следующего cronjob (для root):

find /var/log -type f -exec truncate -s 0 {} \;

5
ответ дан 24 July 2018 в 13:37

Другие вопросы по тегам:

Похожие вопросы: