Tarefa Cron para mover o diretório com a data de ontem para outro diretório

0
  1. Eu tenho um sistema de upload de imagens no meu site no diretório home1 que tem pastas nesse formato 2018/04/19/abc.jpg (ano / mm / dd / nome-do-grupo). Eu preciso configurar um cron job para copiar / mover o conteúdo da pasta da pasta de 3 dias atrás, ou seja, 16, se estiver executando em 19, 17, se estiver executando em 20 e assim por diante, para uma pasta correspondente em home2.

  2. Uma vez que o conteúdo do diretório foi movido, eu preciso colocar um htaccess na pasta redirecionando para o novo diretório, assim:

    RewriteEngine On
      RewriteCond %{HTTP_HOST} ^example.com$ [OR]
      RewriteCond %{HTTP_HOST} ^www.example.com$
      RewriteRule ^(.*)$ https://example.com/new_directory/uploads/YYYY/MM/DD/$1 [R=301,L]
    

    Basicamente, o ano, mês e data devem ser gerados dinamicamente no arquivo htaccess, correspondendo ao diretório que foi copiado

Por favor, ajude com o cron job.

    
por dc09 19.04.2018 / 21:07

1 resposta

1

Você precisará testar isso e ajustar os caminhos. Sinta-se à vontade para editar esta resposta para atender às suas necessidades depois disso. Mas é algo assim:

#!/bin/bash
THREEDAYSAGO=$(date +%Y/%m/%d --date='3 days ago')
SRC="~/home1/"
DEST="~/home2/"

mv -f $SRC/$THREEDAYSAGO $DEST/$THREEDAYSAGO
cat << EOF >/$DEST/$THREEDAYSAGO/.htaccess
RewriteEngine On
  RewriteCond %{HTTP_HOST} ^example.com$ [OR]
  RewriteCond %{HTTP_HOST} ^www.example.com$
  RewriteRule ^(.*)$ https://example.com/new_directory/uploads/${THREEDAYSAGO}/\ [R=301,L]
EOF

Em seguida, no seu crontab ( crontab -e ):

# Every day at 12:00am
0 0 * * * /path/to/my/script
    
por dpb 20.04.2018 / 06:54