宝塔面板可通过计划任务实现网站每日定时开关:一、用Shell脚本执行service nginx stop/start命令在2:00关闭、6:00开启服务;二、通过替换Nginx配置文件并重载实现单站逻辑开关;三、查看cron.log验证执行结果。

如果您希望网站在每日凌晨自动关闭、清晨自动开启,宝塔面板可通过计划任务结合Web服务器控制命令实现。以下是具体操作步骤:
一、定时停止Nginx/Apache服务(关闭网站)
该方法通过在指定时间执行服务停止命令,使网站无法响应HTTP请求,达到“关闭”效果。适用于单站环境,多站共用同一Web服务时将导致全部站点不可访问。
1、登录宝塔面板,点击左侧菜单栏中的计划任务,进入任务管理界面。
2、点击左上角添加任务按钮,在弹出窗口中选择任务类型为Shell脚本。
3、在脚本内容框中输入以下命令(以Nginx为例):
service nginx stop
4、在执行周期中设置关闭时间,例如每日凌晨2:00,填写Cron表达式:0 0 2 * * ?(注意:宝塔面板实际支持标准Linux Cron格式,此处应填0 0 2 * * *,即分 时 日 月 周 年,年位可留空或省略;宝塔界面中推荐使用0 0 2 * * *或界面选择“每天 2:00”)。
5、任务名称填写为凌晨关闭网站,点击添加任务保存。
二、定时启动Nginx/Apache服务(开启网站)
该方法在预设清晨时间重新启动Web服务,恢复网站对外访问能力。与关闭操作配对使用,确保服务状态可控且可逆。
1、再次点击添加任务,类型仍选Shell脚本。
2、脚本内容填写启动命令(Nginx):
service nginx start
3、执行周期设为清晨6:00,Cron表达式填写:0 0 6 * * *(对应每天6:00)。
4、任务名称填写为清晨开启网站,点击添加任务保存。
三、通过301重定向模拟开关(无服务中断)
该方法不关停Web服务,而是通过动态启用/禁用Nginx重定向配置,将所有访问强制跳转至维护页面,实现“逻辑关闭”,避免影响其他共存站点及服务稳定性。
1、准备两个配置文件:一个为正常站点配置(如/www/server/panel/vhost/nginx/www.example.com.conf),另一个为301跳转至维护页的配置(如/www/server/panel/vhost/nginx/www.example.com.maint.conf)。
2、创建关闭网站脚本(保存为/www/shell/close_site.sh):
mv /www/server/panel/vhost/nginx/www.example.com.conf /www/server/panel/vhost/nginx/www.example.com.conf.bak
mv /www/server/panel/vhost/nginx/www.example.com.maint.conf /www/server/panel/vhost/nginx/www.example.com.conf
/etc/init.d/nginx reload
3、创建开启网站脚本(保存为/www/shell/open_site.sh):
mv /www/server/panel/vhost/nginx/www.example.com.conf /www/server/panel/vhost/nginx/www.example.com.maint.conf
mv /www/server/panel/vhost/nginx/www.example.com.conf.bak /www/server/panel/vhost/nginx/www.example.com.conf
/etc/init.d/nginx reload
4、在计划任务中分别添加两项Shell任务:一项执行/www/shell/close_site.sh,周期设为0 0 2 * * *;另一项执行/www/shell/open_site.sh,周期设为0 0 6 * * *。
四、验证计划任务是否生效
宝塔面板的计划任务执行日志位于/www/server/panel/logs/cron.log,可用于确认脚本是否按时运行及是否存在报错。
1、在SSH终端中执行:
tail -f /www/server/panel/logs/cron.log
2、等待临近设定时间(如1:59),观察日志中是否出现对应任务的执行记录与返回码。
3、若日志显示exit_code=0,表示命令成功执行;若为非零值,需检查脚本路径、权限(chmod +x)、命令语法及服务名是否正确(如systemctl vs service)。










