在centos7 下 如何只执行一次某个shell脚本,而且指定用user1这个用户启动脚本

2023-12-21 18:37:56

1、创建一个调度器文件,例如 run-once.timer,并将以下内容添加到文件中:

[Unit]
Description=Run Once Timer

[Timer]
OnBootSec=1min
Persistent=false

[Install]
WantedBy=timers.target

2、创建一个服务文件,例如 run-once.service,并将以下内容添加到文件中:

[Unit]
Description=Run Once Service

[Service]
ExecStart=/bin/bash -c "sudo -u user1 /path/to/your_script.sh"
Type=oneshot

[Install]
WantedBy=multi-user.target

3、将调度器文件和服务文件复制到 /etc/systemd/system/ 目录下:

sudo cp run-once.timer run-once.service /etc/systemd/system/

4、更新 systemd 配置:

sudo systemctl daemon-reload

5、启用并启动计时器:

sudo systemctl enable run-once.timer
sudo systemctl start run-once.timer

6、重启主机查看效果

? ? ? 比如你的shell脚本中有往指定的文件中写东西,那重启主机后确认是否有新内容写进来

比如脚本内容是

#!/usr/bin/env bash

mytime=$(date +%Y-%m-%d_%H:%M:%S_%5N)

echo "good luck $mytime" >> /opt/user1/a.log

文章来源:https://blog.csdn.net/xoofly/article/details/135137093
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。