Jak obudzić zdalny serwer internetowy IIS za pomocą skryptów powłoki dd-wrt

1

Problem:

Mam kilka stron asp.net hostowanych na IIS (w lokalnej firmie hostingowej). Teraz, jeśli nikt nie uzyska do nich dostępu podczas aprox. Po 20 minutach IIS przechodzi w tryb uśpienia, więc pierwsze żądanie obudzi serwer, ale zajmie to trochę czasu, więc jest to bardzo denerwujące dla użytkownika.

Pytanie:

Jak obudzić strony za pomocą skryptu z mojego dd-wrt?

Chyba jakiś sposób wysyłania żądania HTTP co X minut.

Nie mam wiedzy na temat skryptów bash, jeśli ktoś mógłby mi pomóc, będę bardzo szczęśliwy. Dziękuję Ci

Uwaga: Nie mogę nadpisać głównej konfiguracji IIS.

Cristian E.
źródło
co. dlaczego serwer idzie spać?
tombull89
Jest to funkcja IIS, aby uwolnić nieużywane zasoby. Robi się więc bezczynny, jeśli nikt nie korzysta z witryn.
Cristian E.
Przypuszczam, że szukasz czegoś bardziej skomplikowanego niż koleżanka, która robi wget?
bgStack15
Niestety nie jestem zainicjowany, jak korzystać z Crona. Jeśli wynik i tak zostanie osiągnięty, to naprawdę nie ma znaczenia, które narzędzie. Czy możesz zilustrować próbkę?
Cristian E.
@Christian, znokautuj się. Zajmuję się tworzeniem bash / AIX, więc mogę nie mieć dokładnych zasobów, jakie posiada środowisko dd-wrt (prawdopodobnie Linux).
bgStack15

Odpowiedzi:

1

Wydaje się, że do tej pory chcesz czegoś, co często trafi na twoją stronę internetową, aby nie zasnąć. Wpłynie to na Twoje dane analityczne, ale oto:

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

Cronjob

Aby wprowadzić wpis w cron (jeśli masz do niego dostęp na routerze dd-wrt; niewiele o nich wiesz), użyj czegoś takiego:

0,15,30,45 * * * * /home/username/keepsitealive.sh >/dev/null 2>&1

Jeśli masz terminal do urządzenia (który zawiera interaktywną powłokę ssh), zwykle możesz edytować crona, uruchamiając go jako superużytkownik crontab -e, ale może to być nieco zależne od tego, na którym dokładnie systemie Linux się opiera.

Krótkie wyjaśnienie cronjobu, który tu dla ciebie wymieniłem:

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.

Dokładne samouczki z użyciem crona znajdziesz w google. Oto link na początek: http://www.unixgeeks.org/security/newbie/unix/cron-1.html

bgStack15
źródło
Dziękuję za odpowiedź! Spróbuję teraz!
Cristian E.
Ooh, jeśli dopiero zaczynasz pisać skrypty itp., Możesz nie od razu wiedzieć, że musisz ustawić flagę wykonywania w pliku. Jako właściciel pliku (lub administratora), uruchom, chmod 744 /home/user/keepitalive.shktóry ustawi flagi rwxr - r-- (r / w / execute) dla właściciela, grupy właściciela, wszystkich w tej kolejności.
bgStack15
Czy mógłbyś wyjaśnić rm $outdir/index.html, czy próbujesz usunąć plik index.html z pliku outdir? Co jeśli adres URL, powiedzmy najwyższą domenę, np. Example.com?
Cristian E.
Cóż, zdecydowałem się określić, który plik, ponieważ nie znam domyślnych ustawień dla Twojej witryny. Jeśli chcesz powiedzieć http://yoursite.com/, że musisz znać domyślną stronę główną, którą wysyła do agenta wysyłającego żądanie. Możesz określić, co chcesz. Zwłaszcza, że ​​znasz swoją witrynę, powiedz jej, aby pobrać dowolną prawidłową stronę lub dowolną stronę, którą wolisz.
bgStack15
@Christian, a polecenie rm po prostu czyści pobrany plik, ponieważ nie można go użyć na urządzeniu lokalnym (routerze). Pomoże to uniknąć bałaganu i potencjalnego zatkania (próby zastąpienia plików, którym zwykle się zapobiega, i powodują pojawienie się komunikatów o błędach).
bgStack15