步骤概览

  • 创建一个 Shell 脚本进行备份和更新
  • 创建 systemd 服务文件
  • 创建 systemd 定时器文件
  • 启动并启用定时器

1. 创建一个 Shell 脚本

1
2
3
4
5
6
   #!/bin/bash
   # Backup the current mirrorlist
   sudo cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.$(date +%Y%m%d).backup

   # Update the mirrorlist using reflector excluding servers from China
   sudo reflector --latest 10 --age 12 --protocol https --sort rate --exclude 'country=China' --save /etc/pacman.d/mirrorlist
  • 保存为 /usr/local/bin/update-mirrorlist.sh
  • 赋予执行权限:
    1
    
         sudo chmod +x /usr/local/bin/update-mirrorlist.sh
    

2. 创建 systemd 服务文件

1
2
3
4
5
6
7
8
9
   [Unit]
   Description=Update pacman mirrorlist with backup

   [Service]
   Type=oneshot
   ExecStart=/usr/local/bin/update-mirrorlist.sh

   [Install]
   WantedBy=multi-user.target
  • 保存为 /etc/systemd/system/update-mirrorlist.service

3. 创建 systemd 定时器文件

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
   [Unit]
   Description=Run mirrorlist update weekly

   [Timer]
   OnCalendar=weekly
   AccuracySec=1h
   Persistent=true

   [Install]
   WantedBy=timers.target
  • 保存为 /etc/systemd/system/update-mirrorlist.timer

4. 启动和启用定时器

1
2
3
   sudo systemctl daemon-reload
   sudo systemctl start update-mirrorlist.timer
   sudo systemctl enable update-mirrorlist.timer
  • 确保服务每周自动执行,以保持最新的软件源并安全地备份旧的配置。