在 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 維基

答案2

  • 從腳本中刪除循環
  • 將腳本放入某個合理的目錄中(例如/usr/local/sbin/
  • 將 cron 作業描述放入 /etc/cron.d/ ,例如

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

這將使您的腳本每分鐘運行一次。然後,為了完全安全起見,您需要添加某種方法來確保實例僅運行一次(即,如果另一個實例需要超過一分鐘才能完成,則不運行)。這通常是透過鎖定文件完成的。

相關內容