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