Обратная связь
+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