内容提要
systemd是一个功能强大的系统管理工具,可进行时间同步、磁盘挂载和定时任务执行。
延伸解读
时间同步前的必要准备
使用systemd-timesyncd前,必须先禁用其他NTP服务(如chrony),否则可能冲突。若服务被屏蔽,需先unmask再启动;若未安装,则通过apt-get安装。修改NTP服务器需编辑/etc/systemd/timesyncd.conf,并重启服务、设置开机启动。最后用timedatectl验证状态。
挂载单元命名的硬性规则
用systemd挂载NFS时,.mount文件名必须与挂载路径严格对应。例如挂载点为/root/test,文件名须为root-test.mount,否则会报错“Where= setting doesn't match unit name”。启动、停止和开机自启分别使用systemctl start/stop/enable命令。
定时器与服务的配对关系
systemd定时任务需同时创建.service和.timer文件。service定义要执行的任务(如记录日期),timer通过Unit=指定关联的服务,并用OnCalendar设置执行周期(如每分钟)。启动timer后,可用systemctl status查看状态。
Q&A
systemd-timesyncd 服务被屏蔽了怎么办?
如果 systemd-timesyncd 服务被屏蔽,可以运行 systemctl unmask systemd-timesyncd 取消屏蔽,然后使用 systemctl start systemd-timesyncd 启动服务。
如何用 systemd 挂载 NFS 磁盘?
创建一个 .mount 文件,文件名必须与挂载路径相符,例如挂载到 /root/test 则文件名为 root-test.mount。文件内容需包含 [Mount] 部分,指定 What(NFS 地址)、Where(挂载点)、Type(nfs)和 Options。然后使用 systemctl start root-test.mount 启动挂载。
systemd 定时器如何配置每分钟执行一次任务?
首先创建一个 service 文件(如 date.service),定义要执行的任务。然后创建一个 timer 文件(如 logdate.timer),在 [Timer] 部分设置 OnCalendar=*-*-* *:*:00 表示每分钟执行一次,并指定 Unit=date.service。最后启动定时器:systemctl start logdate.timer。
如何修改 systemd-timesyncd 的 NTP 服务器?
编辑 /etc/systemd/timesyncd.conf 文件,在 [Time] 部分设置 NTP=cn.ntp.org.cn(或其他服务器地址),然后重启服务:systemctl restart systemd-timesyncd。
systemd 挂载磁盘时文件名有什么要求?
.mount 文件的文件名必须与挂载路径相符。例如挂载路径是 /root/test,则文件名必须是 root-test.mount。否则会报错:Where= setting doesn't match unit name. Refusing.
如何设置 systemd 挂载或定时任务开机自启?
对于挂载,使用 systemctl enable root-test.mount;对于定时器,使用 systemctl enable logdate.timer。对于时间同步服务,使用 systemctl enable systemd-timesyncd。