Necesito ejecutar sudo php artisan backup:run
e ingresar automáticamente la contraseña todos los días a las 3 p.m. Sé cómo hacer esto en Windows simplemente usando el programador de tareas y configurando ejecutar como administrador en el script .bat.
Respuesta1
Esto esdeberíaserá prácticamente igual en Ubuntu 14.04 que en las últimas versiones; sin embargo, es posible que haya algunas diferencias.
La tarea se divide en dos partes:
- Para poder hacerlo
sudo
sin contraseña, agregue el usuario alsudoers
archivo y permítale no requerir contraseña. - Para ejecutar un trabajo automáticamente, utilice
cron
.
sudoers
Agregue el usuario al grupo sudo con
usermod -aG sudo <username>
Cambie <username>
al usuario con el que desea ejecutar el trabajo.
Para evitar tener que ingresar la contraseña, edite el /etc/sudoers
archivo:
visudo
y agregue la siguiente línea al final del archivo:
<username> ALL=(ALL) NOPASSWD:ALL
Nuevamente, cambie <username>
al usuario con el que desea ejecutar el trabajo.
Tenga en cuenta que un mejor enfoque sería crear un nuevo archivo sudoers para su usuario en particular, en lugar de editar el archivo sudoers principal, así:
echo "<username> ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/username
Para más información verCómo agregar usuarios a Sudoers en Ubuntu.
Vea también esta pregunta,¿Cómo puedo agregar un usuario como nuevo sudoer usando la línea de comando?
cron
cron es muy poderoso y hay muchas opciones diferentes. Sin embargo, para realizar su tarea, estos son solo los elementos básicos:
Para editar el crontab, use
crontab -e
o para un usuario diferente, use
crontab -u ostechnix -e
Si nunca antes ha ejecutado crontab, es posible que se le solicite que elija un editor la primera vez que lo ejecute.
Luego, para un trabajo a las 3 p. m., agregue la línea
0 15 * * * <command-to-execute>
Entonces en tu caso usa
0 15 * * * sudo php artisan backup:run
Guarde y salga al editor. Luego, para verificar el crontab, use
crontab -l
Si desea cambiar la hora los campos son los siguientes, desde la página de manual de cron.
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".
Para obtener más información sobre crontab
, consulteUna guía para principiantes sobre trabajos cron, o escriba man cron
.
Vea también esta pregunta,¿Cómo configuro un trabajo Cron?