Ubuntu 17.04 Справка по скрипту Bash

Новая функция, добавленная в ext4 и введенная с помощью ядра 3.5, называется так называемыми «контрольными суммами метаданных», что является еще одной особенностью ext4, которая должна повысить надежность и целостность структуры файловой системы.

Общая реализация хорошо объясняется новичками Kernel:

Современные файловые системы, такие как ZFS и Btrfs, доказали, что обеспечение целостности файловой системы с использованием контрольных сумм является ценной функцией. Ext4 добавила возможность хранить контрольные суммы различных полей метаданных. Каждый раз, когда считывается поле метаданных, контрольная сумма данных чтения сравнивается с хранимыми контрольными суммами, если они различны, это означает, что медаты повреждены (обратите внимание, что эта функция не охватывает данные, а только внутренние структуры метаданных и у него нет возможностей «самовосстановления»). Любая файловая система ext4 может быть обновлена ​​для использования контрольных сумм с использованием команды «tune2fs -O metadata_csum» или «mkfs -O metadata_csum» во время создания. Когда эта функция включена в файловой системе, более старые ядра без поддержки контрольной суммы смогут только смонтировать ее в режиме только для чтения.

Статьи, такие как новички ядра , подробно обсуждают, как использование контрольных сумм метаданных может помешать поврежденным метаданным повреждать структуру файловой системы.

Однако статья также предупреждает:

Современные файловые системы, такие как ZFS и Btrfs, доказали, что обеспечение целостности файловой системы с использованием контрольных сумм является ценной функцией. Ext4 добавила возможность хранить контрольные суммы различных полей метаданных. Каждый раз, когда считывается поле метаданных, контрольная сумма данных чтения сравнивается с хранимыми контрольными суммами, если они различны, это означает, что медаты повреждены (обратите внимание, что эта функция не охватывает данные, а только внутренние структуры метаданных и у него нет возможностей «самовосстановления»).

Код проверки контрольных сумм метаданных начал работать в mainline в Linux 3.5, а с 3.7-rc1 он проходит некоторое тестирование пользователя. Этот код еще не прочный.

1
задан 10 July 2017 в 19:11

2 ответа

вы можете использовать аргумент --print-uris команды apt-get, чтобы просто выводить URI пакетов обновлений. Например:

sudo apt-get --print-uris update

выведет список архивов архивов и .xz. но этот список очень нечист и имеет следующий общий формат.

'http://archive.ubuntu.com/ubuntu/dists/xenial-backports/multiverse/dep11/icons-64x64.tar.xz' archive.ubuntu.com_ubuntu_dists_xenial-backports_multiverse_dep11_icons-64x64.tar 0

однако вывод можно очистить, просто используя egrep со следующим простым регулярным выражением, которое можно использовать для сопоставления URL-адресов Прямые статические ссылки на любой файл.

sudo apt-get -y --print-uris update | egrep -o -e egrep -o -e "(ht|f)tp://[^\']+"

, чтобы сделать это в функцию

updateURIonly(){ sudo apt-get -y --print-uris update | egrep -o -e egrep -o -e "(ht|f)tp://[^\']+" ; }

, вы также можете использовать это для вывода URI пакетов для аргументов upgrade и / или dist-upgrade, а также любого другого аргумента, который может быть передан команде apt-get.

, чтобы сделать эту работу с аргументом upgrade: [ ! d7] upgradeURIonly(){ sudo apt-get -y --print-uris upgrade | egrep -o -e egrep -o -e "(ht|f)tp://[^\']+" ; }

вы можете использовать URI с этого выхода для быстрого обновления с использованием более быстрых многопоточных загрузчиков, таких как axel a / или aria2c. У меня есть сценарий на моем github, который делает именно эту вещь. то есть он использует метод, показанный выше, для извлечения списка URI и загрузки пакетов .deb для выполнения очень быстрого обновления. скорость увеличивается до 40X. помните, что мой сценарий использует axel, поэтому убедитесь, что axel установлен перед запуском скрипта.

для клонирования моего github repo:

git clone https://github.com/el-beth/apt-faster.git

1
ответ дан 18 July 2018 в 10:29

вы можете использовать аргумент --print-uris команды apt-get, чтобы просто выводить URI пакетов обновлений. Например:

sudo apt-get --print-uris update

выведет список архивов архивов и .xz. но этот список очень нечист и имеет следующий общий формат.

'http://archive.ubuntu.com/ubuntu/dists/xenial-backports/multiverse/dep11/icons-64x64.tar.xz' archive.ubuntu.com_ubuntu_dists_xenial-backports_multiverse_dep11_icons-64x64.tar 0

однако вывод можно очистить, просто используя egrep со следующим простым регулярным выражением, которое можно использовать для сопоставления URL-адресов Прямые статические ссылки на любой файл.

sudo apt-get -y --print-uris update | egrep -o -e egrep -o -e "(ht|f)tp://[^\']+"

, чтобы сделать это в функцию

updateURIonly(){ sudo apt-get -y --print-uris update | egrep -o -e egrep -o -e "(ht|f)tp://[^\']+" ; }

, вы также можете использовать это для вывода URI пакетов для аргументов upgrade и / или dist-upgrade, а также любого другого аргумента, который может быть передан команде apt-get.

, чтобы сделать эту работу с аргументом upgrade: [ ! d7] upgradeURIonly(){ sudo apt-get -y --print-uris upgrade | egrep -o -e egrep -o -e "(ht|f)tp://[^\']+" ; }

вы можете использовать URI с этого выхода для быстрого обновления с использованием более быстрых многопоточных загрузчиков, таких как axel a / или aria2c. У меня есть сценарий на моем github, который делает именно эту вещь. то есть он использует метод, показанный выше, для извлечения списка URI и загрузки пакетов .deb для выполнения очень быстрого обновления. скорость увеличивается до 40X. помните, что мой сценарий использует axel, поэтому убедитесь, что axel установлен перед запуском скрипта.

для клонирования моего github repo:

git clone https://github.com/el-beth/apt-faster.git

1
ответ дан 24 July 2018 в 19:34
  • 1
    Спасибо @endrias, но мне кажется, что мой вопрос был неясен в отношении того, что я пытался выполнить. Поэтому я собираюсь задать другой вопрос с более четкими инструкциями и лучшим примером. Потому что я просто использовал URL-адреса в качестве примера списка текста на терминале. Я просто хотел найти определенную строку текста и повторить то, что происходит после. – iamr00t 10 July 2017 в 19:32
  • 2
    в этом случае вы должны узнать о regex es. они предлагают прекрасный способ сопоставить текст, который соответствует определенному шаблону (регулярному выражению) нашего выбора. Это просто то, что вы пытаетесь сделать, что, насколько я понимаю, связано с скрипированием экрана на терминале. – endrias 10 July 2017 в 19:40
  • 3
    Я буду искать регулярные выражения. Похоже, вы понимаете, что я пытаюсь сделать сейчас. У меня есть лучший пример в другом вопросе, который я только что опубликовал несколько секунд назад, если вы хотите увидеть реальный проект, который я пытался с ним сделать. – iamr00t 10 July 2017 в 19:46

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

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