Как активировать удаленный веб-сервер IIS с помощью сценариев оболочки dd-wrt
Эта проблема:
У меня есть несколько сайтов asp.net, размещенных на IIS (в местной хостинговой компании). Теперь, если никто не доступ к ним во время aprox. Через 20 минут IIS переходит в спящий режим, поэтому первый следующий запрос разбудит сервер, но это займет некоторое время, поэтому это очень раздражает пользователя.
Вопрос:
Как разбудить мои сайты, используя скрипт из моего dd-wrt?
Я думаю, что-то вроде отправки HTTP-запроса каждые X минут.
У меня нет знаний в написании сценариев bash, если кто-то может мне помочь, я буду очень счастлив. Спасибо
Примечание: я не могу переписать основной конфиг IIS.
1 ответ
Кажется, что вы хотите, чтобы что-то попадало на ваш сайт так часто, чтобы оно не спало. Это повлияет на вашу аналитику, но здесь идет:
keepitalive.sh
#!/bin/bash
# call this script with cronjob:
# 0,15,30,45 * * * * /home/username/keepsitealive.sh >/dev/null 2>&1
outdir=~/
cd $outdir
wget http://www.example.com/index.html
rm $outdir/index.html
Кронджоб
Для записи в cron (если у вас есть доступ к ней на маршрутизаторе dd-wrt; вы не знаете о них много), используйте что-то вроде этого:
0,15,30,45 * * * * /home/username/keepsitealive.sh >/dev/null 2>&1
Если у вас есть терминал для устройства (который включает в себя интерактивную оболочку ssh), вы обычно можете редактировать cron, запустив его как суперпользователь crontab -e
, но это может немного зависеть от того, на какой версии Linux он работает.
Быстрое объяснение cronjob, которое я перечислил здесь для вас:
0,15,30,45 #minutes during each hour. So every 15 minutes.
* (first one) #every hour
* #every day-of-month
* #every month
* #every day-of-week (usually not used when day-of-month is used, for example)
/home/user/keepitalive.sh #the command. Can be a series of shell commands and not just a script. Separate commands with a semicolon ; and keep them all on the same line.
> /dev/null #after a command: redirects stdout to null-device (hides output) because if you don't, superuser will get emails and it's annoying.
2>&1 #sends stderr to same place as stdout, which you probably want pointing to /dev/null. This suppresses error messages from hitting superuser email.
Для подробного изучения cron используйте google. Вот ссылка, с которой можно начать: http://www.unixgeeks.org/security/newbie/unix/cron-1.html