在 ubuntu 服务器启动时运行一个 bash 脚本,该脚本会执行一个恒定循环

在 ubuntu 服务器启动时运行一个 bash 脚本,该脚本会执行一个恒定循环

我正在创建本地 FTP 服务器,我需要在机器启动时运行此脚本:

#!/bin/bash
while [ 1 ];
do
chmod 2777 /home/ftp/folder;
chmod -R 777 /home/ftp/folder;
sleep 60;
done

解决此问题的最佳方法是什么?

我试图将它放在 rc.local 文件中,但是这根本不允许服务器正确启动,而且这个脚本需要以 sudo 身份运行,如果这会对脚本的运行产生影响的话。

任何帮助或想法都将不胜感激,谢谢。

答案1

使用 cronjob 怎么样?

#!/bin/bash
chmod 2777 /home/ftp/folder
chmod -R 777 /home/ftp/folder

放入脚本文件并每分钟调用一次:

sudo crontab -e

并调用以下命令:

* * * * * /path/to/script.sh

更多信息 - ubuntu wiki

答案2

  • 从脚本中删除循环
  • 将脚本放入合理的目录中(例如/usr/local/sbin/
  • 将 cron 任务描述放入 /etc/cron.d/ 中,例如

* * * * * myuser /usr/local/sbin/myscript

这将使您的脚本每分钟运行一次。然后,为了完全安全,您需要添加某种方法来确保只有一个实例在运行(即,如果另一个实例需要一分钟以上才能完成,则不运行)。这通常是通过锁定文件来完成的。

相关内容