Reflector (Português)
Reflector é um script que pode recuperar a lista de espelhos mais recente da página MirrorStatus, filtrar os espelhos mais atualizados, classificá-los por velocidade e substituir o arquivo /etc/pacman.d/mirrorlist
.
Instalação
Uso
- Nos exemplos a seguir,
/etc/pacman.d/mirrorlist
vai ser sobrescrito. Faça um backup antes de proceder. - Certifique-se de que o
/etc/pacman.d/mirrorlist
resultante não contenha entradas que você considere não confiáveis antes de sincronizar ou atualizar com pacman.
Para ver todos os comandos disponíveis, execute o seguinte comando:
# reflector --help
Exemplos
Classifica e ordena de forma detalhada os cinco espelhos sincronizados mais recentemente pela velocidade do download e sobrescreve o arquivo /etc/pacman.d/mirrorlist
:
# reflector --verbose --latest 5 --sort rate --save /etc/pacman.d/mirrorlist
Seleciona os 200 espelhos HTTP ou HTTPS sincronizado mais recentemente, ordena-os pela velocidade de download e sobrescreve o arquivo /etc/pacman.d/mirrorlist
:
# reflector --latest 200 --protocol http --protocol https --sort rate --save /etc/pacman.d/mirrorlist
Seleciona os espelhos HTTPS sincronizados dentro das últimas 12 horas e localizados na França ou Alemanha, ordena-os pela velocidade de download e sobrescreve o arquivo /etc/pacman.d/mirrorlist
:
# reflector --country France --country Germany --age 12 --protocol https --sort rate --save /etc/pacman.d/mirrorlist
Automação
Hook do pacman
Você pode criar um hook do pacman que executará reflector e removerá o arquivo .pacnew criado toda vez que pacman-mirrorlist recebe uma atualização.
/etc/pacman.d/hooks/mirrorupgrade.hook
[Trigger] Operation = Upgrade Type = Package Target = pacman-mirrorlist [Action] Description = Updating pacman-mirrorlist with reflector and removing pacnew... When = PostTransaction Depends = reflector Exec = /bin/sh -c "reflector --country 'United States' --latest 200 --age 24 --sort rate --save /etc/pacman.d/mirrorlist; rm -f /etc/pacman.d/mirrorlist.pacnew"
Certifique-se de substituir nos argumentos desejados para o refletor.
Serviço de systemd
Este é um exemplo de uma unit de serviço que espera que a rede esteja ativa e online antes de executar o refletor:
/etc/systemd/system/reflector.service
[Unit] Description=Pacman mirrorlist update Wants=network-online.target After=network-online.target nss-lookup.target [Service] Type=oneshot ExecStart=/usr/bin/reflector --protocol https --latest 30 --number 20 --sort rate --save /etc/pacman.d/mirrorlist [Install] WantedBy=multi-user.target
Ao iniciar reflector.service
, a lista de espelhos será atualizada. Para atualizar a lista de espelhos sempre que o computador inicializar, habilite o serviço.
Timer de systemd
Se você deseja executar reflector.service
semanalmente, crie um timer associado. Por exemplo:
/etc/systemd/system/reflector.timer
[Unit] Description=Run reflector weekly [Timer] OnCalendar=Mon *-*-* 7:00:00 RandomizedDelaySec=15h Persistent=true [Install] WantedBy=timers.target
E basta iniciar o reflector.timer
.
Pacote reflector-timer
Instale reflector-timerAUR[link quebrado: package not found] para executar o reflector semanalmente.
A configuração padrão, que pode ser editada para atender necessidades específicas de cada um, é:
/usr/share/reflector-timer/reflector.conf
AGE=6 COUNTRY=Germany LATEST=30 NUMBER=20 SORT=rate ### remova uma entrada, se você não deseja-o como um protocolo disponível PROTOCOL1='-p http' PROTOCOL2='-p https' PROTOCOL3='-p ftp'
Certifique-se de habilitar o reflector.timer
.
Tarefa do cron
Para atualizar o mirrorlist diariamente, considere o seguinte:
/etc/cron.daily/mirrorlist
#!/bin/bash # Obtém a lista por país /usr/bin/reflector -c "India" -p http --sort rate > /etc/pacman.d/mirrorlist # Trabalha com as alternativas /usr/bin/reflector -p http --latest 20 -p https -p ftp --sort rate >> /etc/pacman.d/mirrorlist