具体步骤
一、写任务脚本文件Shell
1.在/usr/local/bin下编写脚本
vim syslog.sh
date旁边的是反引号
2.加执行权限
chmod +x syslog.sh
3.创建文件
touch syslog.txt
二、编写一个配套的服务单元文件Service
1.在/etc/systemd/system下编写脚本
vim syslog.service
[Unit]
Description=date daemon
[Service]
Type=simple
ExecStart=/usr/local/bin/syslog.sh
上面的内容表示服务将执行 /usr/local/bin/syslog.sh 这个脚本。systemd 会等待这个脚本执行完毕,然后根据 Type=simple 的设置,一旦脚本执行完毕,systemd 就认为服务已经启动完成。
三、编写一个定时器单元文件Timer
1..在/etc/systemd/system下编写脚本
vim syslog.timer
[Unit]
Description=Run syslog every second
[Timer]
OnUnitActiveSec=3s
AccuracySec=1us
[Install]
WantedBy=multi-user.target
上面的内容表示Systemd 定时器允许你按照设定的时间间隔来启动服务单元(service unit)
其中
- Description: 这一行是对该定时器单元的简短描述。在这里,描述为“每秒运行 syslog”。请注意,这里的描述可能与实际的服务或任务不完全匹配,只是作为一个示例。
-
OnUnitActiveSec: 这个选项定义了从上次服务单元激活后,再次激活服务单元所需的时间间隔。
- AccuracySec: 这个选项定义了定时器激活的准确度。在这里,它被设置为 1us(微秒),意味着 Systemd 会尽力在指定的时间间隔内启动服务单元,但实际的启动时间可能会有些许偏差,偏差不会超过1微秒。虽然1微秒是一个非常小的值,但在实际应用中,由于系统负载和其他因素,定时器可能无法达到这样的精确度。
- WantedBy: 这个选项定义了哪些目标(target)需要这个定时器单元。在这个例子中,定时器单元被设置为在 multi-user.target 被激活时也被激活。multi-user.target 通常表示系统已进入多用户模式,此时大多数系统服务都已启动,用户可以登录并使用系统。
2.将 SELinux 的模式设置为宽容模式
setenforce 0
SELinux 是一个为 Linux 内核提供的模块,用于提供访问控制安全策略机制。它通过对进程和文件定义了一系列的访问规则,以此来保护系统免受恶意攻击和未授权访问。
在 SELinux 中,有三种主要的模式:
(1). *Enforcing*:这是 SELinux 的默认模式。在此模式下,SELinux 强制执行定义的安全策略。如果某个进程试图违反这些策略,那么它将被拒绝访问,并可能在系统日志中记录相关信息。
(2). *Permissive*:在这个模式下,SELinux 不会阻止任何违反策略的行为,但它会记录这些违规行为。这允许管理员在不影响系统正常运行的情况下,观察哪些策略被违反了,然后根据需要调整策略。
(3). *Disabled*:在这个模式下,SELinux 完全被禁用,不执行任何安全策略。
四、重新装载单元文件
systemctl daemon-reload
五、设置定时起开机启动
systemctl enable syslog.service
systemctl start syslog.service
systemctl enable syslog.timer
systemctl start syslog.timer
六、查看服务状态
systemctl status syslog.service
systemctl status syslog.timer
七、查看日志
tail -f syslog.txt
每三秒出现一次