问题:
我在 IIS 上托管了一些 asp.net 网站(在本地托管公司)。现在,如果在大约 20 分钟内没有人访问它们,IIS 将进入睡眠模式,因此第一个下一个请求将唤醒服务器,但这需要一些时间,因此这对用户来说非常烦人。
问题:
如何使用 dd-wrt 中的脚本唤醒我的网站?
我猜想每隔 X 分钟就会发送一次 HTTP 请求。
我对 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 交互式 shell),您通常可以通过以超级用户身份运行来编辑 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 的完整教程,请谷歌搜索。以下是入门链接:http://www.unixgeeks.org/security/newbie/unix/cron-1.html