As Arch Linux is a rolling release distro, there are updates available almost all days, and maybe is not a good idea or not practical to upgrade your system all days, maybe not even all weeks.

I usually do it twice a month, or even once a month, but when I finally want to do it, there are a lot of packages to download, so I create a script that will keep my system ready for the upgrade, this script will run every time I turn my system on.

So create a script file, lets say, upgrade-arch.sh, and put this lines inside.

#!/bin/bash
trickle -d 20 pacman -Syuw --noconfirm

trickle will limit the traffic to 20 kbps, so pacman will not use all your available bandwidth, while downloading the packages, read more about trickle

Now, what pacman is going to do?, well we all know what -Syu switches mean, and -w mean that it will only download the packages, and not install them, and –noconfirm, will answer yes to all confirming questions on the screen. So this line will automatically download all packages to your disk, but not install them, so next time I want to upgrade my system all package or at least most of them, will be waiting y my hard drive, ready to be installed.

hope this may help someone.