Ich bin gerade dabei, einen lokalen FTP-Server einzurichten und muss dieses Skript ausführen, wenn der Rechner hochfährt:
#!/bin/bash
while [ 1 ];
do
chmod 2777 /home/ftp/folder;
chmod -R 777 /home/ftp/folder;
sleep 60;
done
Wie geht man dabei am besten vor?
Ich habe versucht, es in die Datei rc.local einzufügen, aber dadurch kann der Server überhaupt nicht ordnungsgemäß gestartet werden. Außerdem muss dieses Skript als sudo ausgeführt werden, falls dies bei der Ausführung des Skripts einen Unterschied macht.
Ich bin für jede Hilfe oder Idee dankbar. Danke.
Antwort1
wie wäre es mit der Verwendung eines Cronjobs?
setzen
#!/bin/bash
chmod 2777 /home/ftp/folder
chmod -R 777 /home/ftp/folder
in eine Skriptdatei und rufen Sie es jede Minute auf:
sudo crontab -e
und rufen Sie es wie folgt auf:
* * * * * /path/to/script.sh
Antwort2
- Entfernen Sie die Schleife aus Ihrem Skript
- Platzieren Sie das Skript in einem geeigneten Verzeichnis (z. B.
/usr/local/sbin/
) - Platzieren Sie eine Cron-Jobbeschreibung in /etc/cron.d/, zB
* * * * * myuser /usr/local/sbin/myscript
Dadurch wird Ihr Skript jede Minute ausgeführt. Um ganz sicher zu gehen, müssen Sie dann eine Möglichkeit hinzufügen, die sicherstellt, dass nur eine Instanz ausgeführt wird (d. h., dass sie nicht ausgeführt wird, wenn eine andere Instanz länger als eine Minute zum Beenden benötigt). Dies geschieht normalerweise über Sperrdateien.