Обратная связь
		    
 
 | +380(66)433-69-36 | 
 
 | 
+380(66)433-69-36 | 
 
 | +380(66)433-69-36 | 
		Последние статьи
		    - BitLocker с GUI под linux
 - Ищем вирус elTest
 - Работаем с бесплатным SSL сертификатом Letsencrypt с помощью certbot
 - Синхронизация ресурсов с удаленного сервера локально
 - Применение нестандартного SEO и статус 404
 - MySQL синхронизируем права с разных серверов
 - IPSec VPN соединение между офисами.
 - "Зеркало" сайта на стороне. Донастраиваем nginx
 - Дефрагментация таблиц всех баз MySQL
 - Месяц в родительном падеже strftime PHP
 - INIT скрипт для Dropbox
 - osCommerce VAM Edition 226. Ошибки
 - PositiveSSL порядок сертификатов
 - osCommerce. Создаем модуль доставки
 - Восстановление mySQL баз данных
 - osCommerce.Перенос магазина в другой домен
 - osCommerce.Прячем адмику
 - osCommerce. Продление жизни сессий
 - osCommerce. Создаем платежный модуль
 - 10 причин выбрать нас
 - GRUB2 восстановление
 - osCommerce не пересчитывает общую сумму заказа
 - Список потенциально опасных скриптов
 - Отправка файлов из Dropbox по e-mail
 - "Черный список" почтовых доменов
 - Боремся с назойливыми иностранцами
 - Яндекс-Диск, и стоит ли им пользоваться.
 - Обновление модуля Интеркассы для osCommerce
 - Веб-почта на сайте хостинга
 - Подключение Outlook Express к хостингу
 
		
		
Главная 
 Статьи 
 Субъективные заметки 
 Статьи 
 Синхронизация ресурсов с удаленного сервера локально
		
		
		
		
		
 Статьи 
 Субъективные заметки 
 Статьи 
 Синхронизация ресурсов с удаленного сервера локально
		Иногда есть необходимость поддерживать локально актуальную версию файлов с удаленного сервера. Это например могут быть картинки, файлы стилей и скриптов и т.д. Поможет в этом скрипт ниже, который может запускаться планировщиком задач, например cron-ом. Что нужно в скрипте подправить - это прописать каталог в который будут складываться ресурсы (вместо PUT LOCAL DIRECTORY HERE). Да, все ресурсы складываются в один каталог - если для небольшого количества файлов то это допустимо. Если нужно грузить много и в разные каталоги - то соответственно нужно будет скрипт доработать и в этом при необходимости мы можем помочь. Еще маленькая ремарка - абсолютные пути используемых программ могут отличаться в зависимости от дистрибутива linux.
#!/bin/bash
JS_OUT=PUT LOCAL DIRECTORY HERE
if [ ! -d $JS_OUT/tmp ];then mkdir -p $JS_OUT/tmp;fi
#--- collection of links to by downloaded and placed locally
links=(\
"https://static.doubleclick.net/instream/ad_status.js" \
"https://platform.twitter.com/widgets.js" \
"https://static.olark.com/jsclient/loader0.js" \
"https://mc.yandex.ru/metrika/watch.js" \
"https://www.google-analytics.com/analytics.js" \
"https://static.olark.com/jsclient-bucket5/application2.js?v=1492023427918" \
"https://static.olark.com/jsclient-bucket5/storage.js?v=1492023427918" \
"https://static.olark.com/jsclient/app.js" \
"https://static.olark.com/jsclient/styles/artsy-albatross/theme.css" \
"https://yastatic.net/es5-shims/0.0.2/es5-shims.min.js" \
"https://yastatic.net/share2/share.js" );
for link in ${links[@]}
do
 OUT_NAME=`basename ${link}`
 VALID_NAME=`echo ${OUT_NAME} | /usr/bin/cut -d \? -f1`
  echo "Downloading: $link"
  /usr/bin/wget -q4  $link -O $JS_OUT/tmp/$VALID_NAME
 if [ $? == 0 ];then
     if [ -f $JS_OUT/$VALID_NAME ];then
      JS_DIF=`/usr/bin/diff $JS_OUT/tmp/$VALID_NAME $JS_OUT/$VALID_NAME`
          if [ -n "$JS_DIF" ];then
             echo "File has been changed"
            /bin/cp $JS_OUT/tmp/$VALID_NAME $JS_OUT/$VALID_NAME
          else
            echo "File not changed"
          fi
     else
             echo "New file"
            /bin/cp $JS_OUT/tmp/$VALID_NAME $JS_OUT/$VALID_NAME
     fi
      /bin/rm -f $JS_OUT/tmp/$VALID_NAME
  else
    echo "Download error"
  fi
    done
