Reflector (Русский)
Reflector — скрипт, который автоматизирует процесс настройки зеркал, включающий в себя загрузку свежего списка зеркал со страницы Mirror Status, фильтрацию из них наиболее обновленных, сортировку по скорости и сохранение в /etc/pacman.d/mirrorlist
.
Contents
Установка
Установите reflector, доступный в официальных репозиториях.
Использование
Чтобы увидеть список всех доступных опций, наберите
# reflector --help
Примеры
Пример 1
Следующая команда отфильтрует пять зеркал с поддержкой https, отсортирует их по скорости и обновит файл mirrorlist:
# reflector --verbose -l 5 -p https --sort rate --save /etc/pacman.d/mirrorlist
Пример 2
Эта команда подробно выведет список 200 наиболее недавно обновленных HTTPS-зеркал, отсортирует их по скорости загрузки и обновит mirrorlist:
# reflector --verbose -l 200 -p https --sort rate --save /etc/pacman.d/mirrorlist
Пример 3
То же, что и в предыдущем примере, но будут взяты только зеркала, расположенные в Соединенных Штатах:
# reflector --verbose --country 'United States' -l 200 -p https --sort rate --save /etc/pacman.d/mirrorlist
Автоматизация
Pacman hook
Вы можете создать хук pacman, который будет запускать reflector и удалять файл .pacnew после каждого обновления pacman-mirrorlist.
/etc/pacman.d/hooks/mirrorupgrade.hook
[Trigger] Operation = Upgrade Type = Package Target = pacman-mirrorlist [Action] Description = Обновление списка зеркал с помощью reflector и удаление pacnew файла... When = PostTransaction Depends = reflector Exec = /bin/sh -c "reflector --country 'United States' --protocol https --latest 10 --age 24 --sort rate --save /etc/pacman.d/mirrorlist; rm -f /etc/pacman.d/mirrorlist.pacnew"
Удостоверьтесь, что подставили необходимые вам аргументы.
Служба systemd
/etc/systemd/system/reflector.service
[Unit] Description=Pacman mirrorlist update [Service] Type=oneshot ExecStart=/usr/bin/reflector --protocol https --latest 30 --number 20 --sort rate --save /etc/pacman.d/mirrorlist
Теперь запуск # systemctl start reflector
разово обновит ваш mirrorlist.
Для обновления списка зеркал при каждой загрузке системы, используйте следующий файл юнита:
/etc/systemd/system/reflector.service
[Unit] Description=Pacman mirrorlist update Requires=network.target After=network.target [Service] Type=oneshot ExecStart=/usr/bin/reflector --protocol https --latest 30 --number 20 --sort rate --save /etc/pacman.d/mirrorlist [Install] RequiredBy=network.target
И включите службу reflector.service
.
Для того, чтобы она работала, цель network.target
должна правильно означать, что установлено интернет-соединение.
Таймер systemd
Если вы хотите запускать reflector.service
, скажем, раз в неделю:
/etc/systemd/system/reflector.timer
[Unit] Description=Run reflector weekly [Timer] OnCalendar=weekly AccuracySec=12h Persistent=true [Install] WantedBy=timers.target
Сохраните файл и включите таймер:
# systemctl enable reflector.timer
Пакет Reflector-timer
Установите reflector-timerAUR, который будет запускать reflector раз в неделю.
Настройки по умолчанию, которые могут быть изменены под нужды пользователя:
/usr/share/reflector-timer/reflector.conf
AGE=6 COUNTRY='United States' LATEST=30 NUMBER=20 SORT=rate ### Удалите те протоколы, которые не хотите использовать PROTOCOL1='-p http' PROTOCOL2='-p https' PROTOCOL3='-p ftp' PROTOCOL4='-p rsync'
Затем включите таймер reflector.timer
.