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

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

你可能感兴趣的:(shell脚本,Linux,linux,运维,服务器)