【问题标题】:Run a bash script at reboot or shutdown opposed to Start up or instantaneously在重新启动或关闭时运行 bash 脚本,而不是立即启动或立即启动
【发布时间】:2019-10-16 16:56:13
【问题描述】:

这是一个简单的脚本,可以将主机名更改为计算机序列号,以便于跟踪。但是,我们需要它在关机或重启时运行。调用此方法的最佳方法是什么。

#!/usr/bin/env bash

# Get the Serial Number of the Machine
sn=$(system_profiler SPHardwareDataType | awk '/Serial/ {print $4}')

# Set the ComputerName, HostName and LocalHostName
scutil --set ComputerName $sn

scutil --set HostName $sn

scutil --set LocalHostName $sn

fi

【问题讨论】:

  • 您可以编写您的bash 脚本 -- 在您的crontab 中,您可以输入以下代码:@reboot bash /path/to/bash/file -- 只要cron 在重启期间在线,它就会运行该脚本..

标签: bash shutdown reboot


【解决方案1】:

使用您的crontab 来执行此操作.. 如果这是您的 bash 脚本中的系统进程,我将在编辑 crontab 时使用sudo 命令以确保正确的用户执行 cron 作业。在这种情况下,root 将执行您的 bash 脚本。最简单的方法是在任何你希望它驻留的地方创建一个 bash 文件,这很有意义——IE

/etc/my_reboot_crons/checkSerial.sh

然后使用以下命令编辑你的crontab --

sudo crontab -e

如果您以前从未使用过它,系统会询问您希望使用哪种编辑器(我选择 VIM),因为它易于使用,所以选择 Nano。

插入以下行:

@reboot bash /etc/my_reboot_crons/checkSerial.sh

或者,如果您不希望 /var/mail/root 填充您可以使用的命令的输出

 @reboot bash /etc/my_reboot_crons/checkSerial.sh > /dev/null 2>&1

如果您想更频繁地运行命令而不是重新启动,例如每天午夜或每小时一次 ..crontab 是专门为此设计的 - 因此@987654333 中的 cron @。

这是一个REFERENCE,可帮助您熟悉crontab

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-22
    • 2016-09-19
    相关资源
    最近更新 更多