Ich muss sudo php artisan backup:run
jeden Tag um 15 Uhr das Passwort ausführen und automatisch eingeben. Ich weiß, wie das unter Windows geht, indem ich einfach den Taskplaner verwende und im .bat-Skript „Als Administrator ausführen“ einstelle.
Antwort1
Das istsollenist unter Ubuntu 14.04 weitgehend identisch mit den neuesten Versionen – es können jedoch einige Unterschiede bestehen.
Die Aufgabe gliedert sich in zwei Teile:
sudo
Um dies ohne Kennwort tun zu können , fügen Sie den Benutzer zursudoers
Datei hinzu und ermöglichen Sie ihm, kein Kennwort anzufordern.- Um einen Job automatisch auszuführen, verwenden Sie
cron
.
sudoers
Fügen Sie den Benutzer zur Sudo-Gruppe hinzu mit
usermod -aG sudo <username>
Wechseln Sie <username>
zu dem Benutzer, als der Sie den Job ausführen möchten.
Um die Eingabe des Passworts zu vermeiden, bearbeiten Sie die /etc/sudoers
Datei:
visudo
und fügen Sie am Ende der Datei die folgende Zeile hinzu:
<username> ALL=(ALL) NOPASSWD:ALL
Wechseln Sie erneut <username>
zu dem Benutzer, als der Sie den Job ausführen möchten.
Beachten Sie, dass es besser wäre, für Ihren bestimmten Benutzer eine neue Sudoers-Datei zu erstellen, anstatt die Haupt-Sudoers-Datei wie folgt zu bearbeiten:
echo "<username> ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/username
Weitere Informationen finden Sie unterSo fügen Sie in Ubuntu einen Benutzer zu Sudoers hinzu.
Siehe auch diese Frage,Wie kann ich über die Befehlszeile einen Benutzer als neuen Sudoer hinzufügen?
cron
cron ist sehr leistungsfähig und bietet viele verschiedene Optionen. Um Ihre Aufgabe zu erfüllen, sind hier jedoch nur die grundlegenden Dinge:
Um die Crontab zu bearbeiten, verwenden Sie
crontab -e
oder für einen anderen Benutzer verwenden
crontab -u ostechnix -e
Wenn Sie crontab noch nie ausgeführt haben, werden Sie beim ersten Ausführen möglicherweise aufgefordert, einen Editor auszuwählen.
Fügen Sie dann für einen Job um 15:00 Uhr die Zeile hinzu
0 15 * * * <command-to-execute>
Verwenden Sie in Ihrem Fall also
0 15 * * * sudo php artisan backup:run
Speichern und zum Editor zurückkehren. Um die Crontab zu überprüfen, verwenden Sie
crontab -l
Wenn Sie die Zeit ändern möchten, lauten die Felder wie folgt (siehe Cron-Manpage).
The time and date fields are:
field allowed values
----- --------------
minute 0-59
hour 0-23
day of month 1-31
month 1-12 (or names, see below)
day of week 0-7 (0 or 7 is Sunday, or use names)
A field may contain an asterisk (*), which always stands for
"first-last".
Weitere Informationen zu crontab
finden Sie unterEin Leitfaden für Anfänger zu Cron-Jobsoder geben Sie ein man cron
.
Siehe auch diese Frage,Wie richte ich einen Cron-Job ein?