![无需 root 权限或 cron 在启动时运行 Linux 脚本](https://linux22.com/image/1522048/%E6%97%A0%E9%9C%80%20root%20%E6%9D%83%E9%99%90%E6%88%96%20cron%20%E5%9C%A8%E5%90%AF%E5%8A%A8%E6%97%B6%E8%BF%90%E8%A1%8C%20Linux%20%E8%84%9A%E6%9C%AC.png)
我有一个 shell 脚本,我想让它在系统启动时自动运行。但是,我没有 root 权限,也没有权限运行 crontab。我想让它在系统启动时运行,而不仅仅是在我登录时运行,所以把它放在 .bashrc 中是行不通的。有办法吗?
编辑:该脚本是一个连续运行的数据处理作业,我有完全的权限来运行它。问题是服务器每晚都会重新启动,所以目前我必须每天早上登录并手动重新启动脚本。我想知道是否有办法自动执行此操作。一个可接受的解决方法是将脚本设置为每天在指定时间运行(以在系统重新启动后继续运行的方式)。正如指出的那样,我可以要求管理员将其设置为 cron 作业,但首先我想检查是否有一种(合法的)方法可以在不需要提升权限的情况下执行此操作。
答案1
如果它是合法的、光明正大的、合适的,您就要求系统管理员安装它,他们要么同意并安装它,要么不同意并拒绝安装它。
否则,就不要。特别是如果你在工作,并且你喜欢薪水,或者在学校,并且你有毕业的打算。
答案2
要求系统管理员为您启用 cron,或者要求他们设置 cron 作业来运行脚本。
或者,编写一个脚本,通过 ssh 连接到计算机并启动数据处理脚本,并安排脚本在您控制的计算机上运行。使用 nohup 命令让脚本在 shell 退出时在后台运行。
ssh [email protected] "data_processing_script.sh < /dev/null > std.out 2> std.err &"
或者,如果系统有一个带有 userdir 设置的 Web 服务器,请编写一个 cgi 脚本来运行数据处理脚本,并在您控制的系统上安排 curl 命令来接触 Web 服务器。
有关使用 ssh 在后台运行命令的更多信息,请参见此处:https://unix.stackexchange.com/questions/30400/execute-remote-commands-completely-detaching-from-the-ssh-connection