Cómo ejecutar una tarea programada en Ubuntu con una línea de Laravel

Cómo ejecutar una tarea programada en Ubuntu con una línea de Laravel

Necesito ejecutar sudo php artisan backup:rune 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 sudosin contraseña, agregue el usuario al sudoersarchivo 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/sudoersarchivo:

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?

información relacionada