Задание Cron для перемещения каталога со вчерашней датой в другой каталог

  1. У меня есть система загрузки изображений на моем сайте в каталоге home1, в которой есть папки в этой форме. 2018/04/19/abc.jpg (Год / мм / дд /finename). Мне нужно настроить задание cron для копирования / перемещения содержимого папки с 3 дней назад, то есть 16, если работает 19, 17, если 20 и так далее, в соответствующую папку в home2.

  2. Как только содержимое каталога было перемещено, мне нужно поместить htaccess в папку, перенаправляющую в новый каталог, например так:

    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]
    

    В основном, год, месяц и дата должны динамически генерироваться в файле htaccess, соответствующем скопированному каталогу.

Пожалуйста, помогите с работой cron.

1 ответ

Решение

Вам нужно будет проверить это и скорректировать пути. Не стесняйтесь редактировать этот ответ в соответствии с вашими потребностями. Но это что-то вроде этого:

#!/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}/\$1 [R=301,L]
EOF

Тогда в вашем crontab (crontab -e):

# Every day at 12:00am
0 0 * * * /path/to/my/script
Другие вопросы по тегам