Quotidien Shaarli

Tous les liens d'un jour sur une page.

July 27, 2017

Archlinux - Timer pour mettre à jour résolveur Dnscrypt

Création du service dnscrypt-update-resolver :

# vim /etc/systemd/system/dnscrypt-update-resolver.service

Et on colle :

[Unit]
Description=mise à jour des résolveur Dnscrypt

[Service]
Type=oneshot
ExecStart=/bin/bash /opt/Scripts/dnscrypt-update-resolver.sh

On créer le timer dnscrypt-update-resolver :

# vim /etc/systemd/system/dnscrypt-update-resolver.timer

Et on colle :

[Unit]
Description=mise à jour résolveur dnscrypt une fois par jour

[Timer]
OnCalendar=daily
Persistent=true
Unit=dnscrypt-update-resolver.service

[Install]
WantedBy=timers.target

Placer le script dnscrypt-update-resolver.sh dans /opt/Scripts/

# vim /opt/Scripts/dnscrypt-update-resolver.sh

Et on colle :

#! /bin/sh

PKG_DATA_DIR="/usr/share/dnscrypt-proxy"
RESOLVERS_FILE="${PKG_DATA_DIR}/dnscrypt-resolvers.csv"
RESOLVERS_FILE_TMP="${RESOLVERS_FILE}.tmp"

RESOLVERS_URL="https://download.dnscrypt.org/dnscrypt-proxy/dnscrypt-resolvers.csv"
RESOLVERS_SIG_URL="${RESOLVERS_URL}.minisig"
RESOLVERS_SIG_PUBKEY="RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3"

echo "Sauvegarde list résolveur"
cp "$RESOLVERS_FILE" "$RESOLVERS_FILE.bak"
echo "Updating the list of public DNSCrypt resolvers..."
curl -L "$RESOLVERS_URL" -o "$RESOLVERS_FILE_TMP" || exit 1
if $(which minisign > /dev/null 2>&1); then
  curl -L -o "$RESOLVERS_FILE_TMP.minisig" "$RESOLVERS_SIG_URL" || exit 1
  minisign -V -P "$RESOLVERS_SIG_PUBKEY" -m "$RESOLVERS_FILE_TMP" || exit 1
  mv -f "${RESOLVERS_FILE_TMP}.minisig" "${RESOLVERS_FILE}.minisig"
fi
mv -f "$RESOLVERS_FILE_TMP" "$RESOLVERS_FILE"
echo "Done"

On teste le timer :

# systemctl start dnscrypt-update-resolver.timer

Si c’est ok alors on active le timer :

# systemctl enable dnscrypt-update-resolver.timer