基於Django的控制(WEB伺服器SHELL指令碼的運行)指南

來源:互聯網
上載者:User

 基於Django的控制(WEB伺服器SHELL指令碼的運行)指南

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"<br />"http://www.w3.org/TR/html4/loose.dtd"><br /><html><br /><head><br /><meta http-equiv="Content-Type" content="text/html; charset=utf8"><br /><title>pop up</title><br /><mce:script language="javascript"><!--<br />function closeit() {<br />setTimeout("self.close()",10000) //..<br />}<br />// --></mce:script><br /></head><br /><body onload="closeit()"><br /><p align="left"> After 10 second,this page will be forced to close automatically.<br /><form><br /><INPUT TYPE='BUTTON' value='close' onClick='window.close()'><br /></form><br /></body><br /></html>

在這個page.html中,實現了兩個功能。

一,10秒自動關閉彈出頁面。

二,添加了一個自動關閉按鈕。

這個彈出頁面怎麼彈出來的呢?

<script language="JavaScript" type="text/JavaScript"><!--<br />window.open ('page.html','newwindow','height=100,width=400,top=0,left=0,toolbar=no,menubar=no,scrollbars=no,resizable=no,location=no,status=no')<br />// --></mce:script>

將這個指令碼放在head裡面,將自動開啟page.html頁面。

在page.html中添加

 

<form method="POST" action="/711/auth/"><br /> <p align="left" class="style5">Step One,Account Authentication:<br /> <input type="submit" name="Submit2" value="authentication"><br /> </form><br />

當單擊authentication按鈕時,將執行/711/auth函數。

在urls中,

from django.conf.urls.defaults import *</p><p># Uncomment the next two lines to enable the admin:<br /># from django.contrib import admin<br /># admin.autodiscover()</p><p>urlpatterns = patterns('',<br /> # Example:<br /> (r'^711/index/$', 'webcontrol.foo.web'),<br /> (r'^711/index/page.html$', 'webcontrol.foo.pop'),<br /> (r'^711/auth/$', 'webcontrol.foo.auth'),<br /> (r'^711/auth/page.html$', 'webcontrol.foo.pop'),<br /> (r'^711/refresh/$', 'webcontrol.foo.refresh'),<br /> (r'^711/refresh/page.html$', 'webcontrol.foo.pop'),<br /> (r'^711/firewall/$', 'webcontrol.foo.firewall'),<br /> (r'^711/firewall/page.html$', 'webcontrol.foo.pop'),<br /> (r'^711/auto/$', 'webcontrol.foo.auto'),<br /> (r'^711/auto/page.html$', 'webcontrol.foo.pop'),</p><p> # Uncomment the admin/doc line below and add 'django.contrib.admindocs'<br /> # to INSTALLED_APPS to enable admin documentation:<br /> # (r'^admin/doc/', include('django.contrib.admindocs.urls')),</p><p> # Uncomment the next line to enable the admin:<br /> # (r'^admin/(.*)', admin.site.root),<br />)<br />

 將執行'webcontrol.foo.auth。

那我們再看'webcontrol.foo.auth是什麼,這個在foo.py中:

from django.shortcuts import render_to_response<br />import os</p><p>def web(request):<br />return render_to_response('index.html')<br />def auto(request):<br />os.system("sudo /home/fpzeng/server/debian/routing/auto.sh")<br />return render_to_response('popup.html')<br />def auth(request):<br />os.system("sudo /home/fpzeng/server/debian/routing/inode-client.sh")<br />return render_to_response('popup.html')<br />def refresh(request):<br />os.system("sudo dhclient eth0")<br />return render_to_response('popup.html')<br />def firewall(request):<br />os.system("sudo /home/fpzeng/server/debian/routing/iptbl.sh")<br />return render_to_response('popup.html')<br />def pop(prequest):<br />return render_to_response('page.html')<br />

 webcontrol.foo.auth將執行“sudo /home/fpzeng/server/debian/routing/auto.sh”指令檔,並返回popup.html頁面。

這個頁面在urls處理中是“(r'^711/auth/page.html$', 'webcontrol.foo.pop'),”

通過這樣,將可以在web執行成品伺服器原生shell程式。

當然,這個sudo許可權需要在sudo組中提前給予,apache2運行程式時的使用者名稱是www-data

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.