我正在创建本地 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
答案2
- 从脚本中删除循环
- 将脚本放入合理的目录中(例如
/usr/local/sbin/
) - 将 cron 任务描述放入 /etc/cron.d/ 中,例如
* * * * * myuser /usr/local/sbin/myscript
这将使您的脚本每分钟运行一次。然后,为了完全安全,您需要添加某种方法来确保只有一个实例在运行(即,如果另一个实例需要一分钟以上才能完成,则不运行)。这通常是通过锁定文件来完成的。