当我们的电脑的CMOS电池失效时,我们可以在登陆shell之后通过脚本自动同步ntp时间。
Debian 11系统脚本编写如下:
$ pwd
/home/user$ ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos  debian   initrd  mnt  sync-time.sh  test$ cat sync-time.sh 
#!/bin/bash  # 指定要检查的文件路径  
FILE_PATH="/run/user/1000/sync-time.txt"  # 使用if语句和[ -f ]条件来检查文件是否存在且是一个普通文件  
if [ -f "$FILE_PATH" ]; then  echo "success sync time"  
else  echo "fail sync time"sudo ntpdate cn.pool.ntp.orgtouch $FILE_PATH
fi
完成之后在终端键入如下命令:
$ echo "bash ./sync-time.sh" >> .bashrc这样保证每次登陆终端的时候会执行一次该脚本,但是只有第一次才会同步时间。
文件放在/run/user/1000的原因如下:
首先是该目录是内存临时目录,关机后该文件会消失,重新开机重新生成该文件
其次,该文件我的用户user可读可写,不需要root权限
$ df
df: /run/user/1000/doc: Operation not permitted
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/root      122508204 8817624 107421280   8% /
devtmpfs        16359584       0  16359584   0% /dev
tmpfs           16377152       0  16377152   0% /dev/shm
tmpfs            6550864    3408   6547456   1% /run
tmpfs               5120       4      5116   1% /run/lock
tmpfs            3275428      48   3275380   1% /run/user/1000
用户可以根据自己的df显示的tmpfs情况设置自己的文件路径
参考
Ubuntu如何同步网络时间
 https://blog.csdn.net/weixin_43982359/article/details/132554503