Справка сценариев Bash Ubuntu 17.04

Я нуждаюсь в помощи, делая определенную функцию удара.

Вот пример чего-то, что я хочу сделать в терминале:

  • выполните команду apt-get update (выполните это в фоновом режиме никакой вывод),
  • затем отзовитесь эхом ТОЛЬКО urls то, что это обновляет от (не Хит: 1, Хит: 2, и т.д....) в списке

Так в основном мне нужен сценарий удара для нахождения определенной вещи, такой как "Хит: 1, Хит: 2, и т.д." и вывод, что прибывает после этого в список.

PS: Это - теоретический пример. У меня нет использования для этих URL.

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

1 ответ

можно использовать --print-uris аргумент Кв. - заставляет команду просто производить URIs пакетов обновления. Например:

sudo apt-get --print-uris update

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

'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://[^\']+" ;
}

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

сделать эту работу с upgrade аргумент:

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

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

клонировать мой GitHub repo:

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

1
ответ дан 7 December 2019 в 15:33

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

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