systemd的几个妙用

systemd的几个妙用

💡 原文中文,约2400字,阅读约需6分钟。
📝

内容提要

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。

🏷️

标签

➡️

继续阅读