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.


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


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.