Можно ли запланировать команду `fsck` и запустить ее в фоновом режиме?

Я хочу периодически запускать команду терминала fsck, поэтому она будет запускаться, скажем, каждую пятницу в 10 часов утра. Кроме того, я бы хотел, чтобы он работал в фоновом режиме и сохранял вывод в файле, скажем, ~ / Documents / errors.log.

Я использую Ubuntu 18.04.3 LTS, которая работает как Live Ubuntu с постоянным хранилищем с USB-накопителя.

Могу ли я это сделать? Как?

2
задан 15 November 2019 в 22:07

1 ответ

Миф - "НЕТ это не может быть сделано"

, Все эти самые популярные хиты поиска Google игнорируют вопрос или говорят НИКАКОЙ , это не может быть сделано. Это не верно все же. fsck, как планируют, будет работать во время начальной загрузки, прежде чем файловая система будет смонтирована как rw (чтение-запись). Как таковой в большинстве ответов говорится, что это не может быть выполнено после того, как система полностью загружается:

, Почему это должно быть сделано

, Это - хороший вопрос для некоторых типов пользователей.

  • Иногда я могу пойти недели прежде, чем перезагрузить мой ноутбук и не буду извлекать пользу из fsck регулярно.
  • Другие времена я могу перезагрузить десятки времен в час, когда я испытываю новую тему личинки или переключатель между дистрибутивами для сравнения функциональности. В этом случае я не хочу ожидать дополнительные 30 секунд fsck для выполнения. Как таковой у меня есть отключенный во время начальной загрузки.

, Что руководство говорит о том, как оно может быть сделано

, можно работать fsck -n, но оно точно не сообщит об ошибках для ReiserFS (независимо от того, что та файловая система). Существует другая неясная файловая система, названная, она отказывается проверять в целом.

$ man fsck

FSCK(8)                              System Administration                             FSCK(8)
    NAME

       fsck - check and repair a Linux filesystem

SYNOPSIS
       fsck  [-lsAVRTMNP]  [-r  [fd]] [-C [fd]] [-t fstype] [filesystem...] [--] [fs-specific-
       options]

DESCRIPTION
       fsck is used to check and optionally repair one or more Linux filesystems.  filesys can
       be a device name (e.g.  /dev/hdc1, /dev/sdb2), a mount point (e.g.  /, /usr, /home), or
       an ext2 label or UUID  specifier  (e.g.   UUID=8868abf6-88c5-4a83-98b8-bfc24057f7bd  or
       LABEL=root).   Normally,  the  fsck program will try to handle filesystems on different
       physical disk drives in parallel to reduce the total amount of time needed to check all
       of them.

       If  no  filesystems  are specified on the command line, and the -A option is not speci‐
       fied, fsck will default to checking filesystems in /etc/fstab serially.  This is equiv‐
       alent to the -As options.

       The exit code returned by fsck is the sum of the following conditions:

              0      No errors
              1      Filesystem errors corrected
              2      System should be rebooted
              4      Filesystem errors left uncorrected
              8      Operational error
              16     Usage or syntax error

OPTIONS

       -n     For some filesystem-specific checkers, the -n option will cause the  fs-specific
              fsck to avoid attempting to repair any problems, but simply report such problems
              to stdout.  This is however not true for all filesystem-specific  checkers.   In
              particular,  fsck.reiserfs(8)  will  not  report  any  corruption  if given this
              option.  fsck.minix(8) does not support the -n option at all.

, Что это похоже на проверку смонтированных разделов

, у меня есть три раздела; Старая (поврежденная) Ubuntu 16.04, Ubuntu 19.04 (названный Ubuntu 18.04) и Новая Ubuntu 16.04. При выполнении fchk они похожи на это:

$ sudo fsck -n /dev/nvme0n1p7
fsck from util-linux 2.27.1
e2fsck 1.42.13 (17-May-2015)
Warning!  /dev/nvme0n1p7 is mounted.
Warning: skipping journal recovery because doing a read-only filesystem check.
Old_Ubuntu_16.04 has been mounted 358 times without being checked, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Old_Ubuntu_16.04: 433493/1515520 files (0.8% non-contiguous), 4956946/6061568 blocks

$ sudo fsck -n /dev/nvme0n1p10
fsck from util-linux 2.27.1
e2fsck 1.42.13 (17-May-2015)
Warning!  /dev/nvme0n1p10 is mounted.
Warning: skipping journal recovery because doing a read-only filesystem check.
Ubuntu_18.04: clean, 719735/1782368 files, 5770105/7129088 blocks

$ sudo fsck -n /dev/nvme0n1p6
fsck from util-linux 2.27.1
e2fsck 1.42.13 (17-May-2015)
Warning!  /dev/nvme0n1p6 is mounted.
Warning: skipping journal recovery because doing a read-only filesystem check.
New_Ubuntu_16.04: clean, 833786/2953920 files, 8256858/11829504 blocks

, Как Вы видите fsck, говорит нам, что Старая Ubuntu 16.04 требует, чтобы реальное fsck было выполнено с системой, смонтированной в [1 111] (режим только для чтения), таким образом, меры могут быть применены при необходимости. Однако я уже знаю, что это повреждается.

<час>

Позже я обновлю этот ответ с кроном еженедельное задание, которое работает fsck на трех смонтированных разделах Ubuntu под контролем только режим.

2
ответ дан 2 December 2019 в 03:26

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

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