"Linux os" is too generic to be able to diagnose your specific system. Please run the following four commands and report the results (including errors if the command is not available). The report will tell which flavour of "linux os" is installed and which version of systemd is running :
lsb_release -a
systemctl --version
/sbin/init --version
busctl --system get-property org.freedesktop.systemd1 \
/org/freedesktop/systemd1 \
org.freedesktop.systemd1.Manager \
Version
On a current (as of August 2019) version of systemd
Set your realtime timer to trigger any time on Saturday
OnCalendar=Sat *-*-* 00:00:01
And remove the monolitic timer
OnBootSec=2
The effect of
Persistent=true
is that the system will try to execute the script once per week after 00:00:01 each Saturday. The script will run only once every Saturday and that will usually be the first time it is booted. It will run on any other day of the week if the system was not on on Saturday, and it will run at 00:00:01 if the system was left on Friday overnight.
Persistent=
Takes a boolean argument. If true, the time when the service unit was last triggered is stored on disk. When the timer is activated, the service unit is triggered immediately if it would have been triggered at least once during the time when the timer was inactive. This is useful to catch up on missed runs of the service when the machine was off. Note that this setting only has an effect on timers configured with OnCalendar=. Defaults to false.