分类: 系统运维
2008-06-18 07:18:45
var RECORDS_FILE_NAME = 'Records.xml';function LoadRecords(Password) {
var xmlDoc = CreateXMLDOM();
var currNode;
xmlDoc.load(RECORDS_FILE_NAME);
if(xmlDoc.parseError.errorCode != 0) {
var myErr = xmlDoc.parseError;
alert("You have error " + myErr.reason);
} else {
currNode = xmlDoc.documentElement.childNodes.item(0);
var att = xmlDoc.createAttribute('name');
att.value = 'baichi';
currNode.attributes.setNamedItem(att);
SaveRecords(xmlDoc.xml);
}
}function SaveRecords(content) {
var fso = null;
var path = null; //current path
var frs = null; //records file
try
{
fso = new ActiveXObject('Scripting.FileSystemObject');
path = fso.GetParentFolderName(location.href).substr(8);
frs = fso.OpenTextFile(path+'/'+RECORDS_FILE_NAME, 2, true);
frs.write(content);
frs.close();
alert('Save Completion!!');
return true;
} catch(e) {
alert('Save failed,error msg:'+e.description);
return false;
}
}function CreateXMLDOM(ProcID){
if(ProcID == null) {
ProcID = 'MSXML2.DOMDocument.3.0';
}
var xmlDom;
try {
xmlDom = new ActiveXObject(ProcID);
xmlDom.async = false;
xmlDom.resolveExternals = false;
xmlDom.validateOnParse = true;
} catch(e) {
alert(e.description);
}
return xmlDom;
}/* Records.xml */
#!/usr/bin/sh
#################################################################################
#init parameters
ROOT_DIR={/source>/dest>ftp:fpt@127.0.0.1:23/ftpdest}
SUB_DIR_NAME={APP1:APP2:APP3}
UNIX_DIR=unix
#################################################################################
##Environment variables
PATH=.:/usr/bin:/usr/ccs/bin:/usr/contrib/bin export PATH#################################################################################APPDIR=`echo $APPDIR|sed 's/:/ /g'`
for APP in $APPDIR
do
if [ -d $ROOTDIR/$APP ]
then
echo [Y] $ROOTDIR/$APP
else
echo [N] $ROOTDIR/$APP
FLAG=1
fi
doneif [ $FLAG ]
then
while true
do
echo "有不存在目录,是否继续[Y/N]:\c"
YN=`dd if=/dev/tty bs=2 count=1 2>/dev/null`
YN=`echo $YN|sed 'y/yn/YN/'`
if [ "$YN" = "Y" ]
then
break
fi
done
fi#cat go|sed -e 's/[ ].*//' -e 's/^[^0-9a-zA-Z_]*//' #取go文件中的名称
#awk '/-o/' solaris9.mk|sed -e '/\.o/d' -e 's/^.*-o *//g' -e 's/ .*$//' -e 's/\/[^/]*$//g' #取应用程序目录
#awk '/-o/' makefile|sed -e '/\.o/d' -e 's/^.*-o *//g' -e 's/ .*//' -e 's/[^\/]*\///' #取应用程序名称
#ps -ef|grep TEST|sed -e '/grep /d' -e 's/^ *//' -e 's/^[^ ]*//' -e 's/^ *//' -e 's/ .*//' #根据名称取PID#ps -ef|grep APP|sed -e '/grep /d'|awk '{print $2}' #取PID
#awk '/^[ ]*OBJDIR[ ]*?=/' makefile|sed -e 's/.*=//' -e 's/[ ]*//' -e 's/[ ].*//' #根据$(%%%)取名称
#!/bin/sh
# =============================================================
# Script Name: glance_collect
# File Name : glance_collect.sh
# =============================================================
# REVISION HISTORY:
# DATE WHO Description
# 20061102 aowken create
# =============================================================SCRIPT_HOME="/command/collect"
SCRIPT_NAME="glance_collect"
SYNTAX_FILE=$SCRIPT_HOME/"proc.syntax"
LOG_FILE=$SCRIPT_HOME/"stat/report.`date +%Y%m%d.%a`"
INTERVAL=300
ITERATION=1
GLANCE_CMD="/opt/perf/bin/glance -adviser_only -syntax $SYNTAX_FILE -j $INTERVAL -iterations $ITERATION"
/usr/bin/clear# =============================================================
# glance_collect script.
# Note: Since the data collection is in $(SCRIPT_HOME)/stat
# =============================================================$GLANCE_CMD 2>/dev/null >> $LOG_FILE# =============================================================
# End of glance_collect script.
# =============================================================PRINT "SYNTAX FILE: glance.syntax"PRINT "=============================================================="
PRINT "[G][",gbl_stattime,"] ","S: ",gbl_mem_sys|6," U: ",gbl_mem_user|6," B: ",gbl_mem_cache|6," F: ",gbl_mem_free|6," T: ",gbl_mem_phys|6
PRINT "--------------------------------------------------------------"
root_total_mem_res = 0
oracle_total_mem_res = 0
hisun_total_mem_res = 0
other_total_mem_res = 0
PROCESS LOOP
IF proc_state == "active" THEN
{
PRINT "[",gbl_stattime,"] ",proc_user_name," ",proc_proc_id|6," ",proc_mem_res/1024|6|2,"mb ",proc_thread_count," ",proc_proc_name
IF proc_user_name == "root" THEN
root_total_mem_res = root_total_mem_res + proc_mem_res
ECLE IF proc_user_name == "oracle" THEN
oracle_total_mem_res = oracle_total_mem_res + proc_mem_res
ELSE IF proc_user_name == "USER" THEN
hisun_total_mem_res = hisun_total_mem_res + proc_mem_res
ELSE
other_total_mem_res = other_total_mem_res + proc_mem_res
}
PRINT "``````````````````````````````````````````````````````````````"
PRINT "[",gbl_stattime,"] R:",root_total_mem_res/1024|6|2,"mb O:",oracle_total_mem_res/1024|6|2,"mb H:",hisun_total_mem_res/1024|6|2,"mb E:",other_total_mem_res/1024|6|2
##########################################################################
# @ - killme
#
# purpose: kill one process by name
#
# desc: auto get process name in [go] file, but only first non-blank line in.
# kill it one by one if N processes have the same name.
#
# os: hp-ux,solaris,redhat
# v0.1,power by
###########################################################################!/usr/bin/shFILE_NAME=goAPPNAME=`cat go|sed -e '/^[ ]*$/d'` #delete blank-line
APPNAME=`echo $APPNAME|sed -e 's/^[ ]*//' -e 's/.*\///' -e 's/^[ ].*//' -e 's/[ ].*$//'` #blank at begin,path,blank at begin,blank at begin to $if [ "$APPNAME" = "" ]
then
echo "get application name failed in (${FILE_NAME})."
exit 0
fiPIDS=`ps -ef|grep ${USER}|grep ${APPNAME}|sed -e '/grep /d' -e 's/^[ ]*//' -e 's/^[^ ]*//' -e 's/^[ ]*//' -e 's/[ ].*//'|sort -n`
#PIDS=`echo ${PID}|sed -e 's/[ ].*//'`if [ "$PIDS" != "" ]
then
for PID in $PIDS
do
if [ "$PID" != "" ]
then
kill $PID
sleep 3
echo "-----Kill ${APPNAME}(${PID}) done. :)"
fi
done
else
echo "get process(${APPNAME}) PID failed."
exit 0
fiexit 0
#
require_once('config.php');
require_once('adodb/adodb.inc.php');
class DB
{
var $conn = null;
function __construct() {
try {
$this->conn = &ADONewConnection(__DB_TYPE);
$this->conn->Connect(__DB_HOST,__DB_USER,__DB_PASSWORD,__DB_NAME) or die('Server too busy. Please retry in 10 seconds.');
$this->conn->debug = !__RELEASE_VERSION;
$this->conn->SetFetchMode(ADODB_FETCH_ASSOC);
} catch (Exception $e) { }
}
function __destruct() {
try {
$this->conn->Disconnect();
$this->conn = null;
} catch (Exception $e) { }
}
#Purpose: verify account
#Desc: verify general account is default,must set $Admin is true where want to verify admin account.
#Reture: true/false
function VerifyAccount($UserName, $Password, $Admin = false) {
if( $Admin )
return !$this->Execute("call P_Pay_VerifyAdmin('$UserName','$Password',@v_result)");
else
return !$this->Execute("call P_Pay_VerifyUser('$UserName','$Password',@v_result)");
}
#Purpose: register account
#Desc: register general account is default,must set $Admin is true where want to register admin account.
#Reture: true/false
function RegisterAccount($EMail, $Password, $FirstName, $LastName, $MobilePhone, $LandingPhone,
$Country = null, $City = null, $Address = null, $ZipCode = null, $IPAddress = null, $Recommender = null, $Admin = false) {
if( $Admin )
return !$this->Execute("call P_Pay_RegisterAdmin('$EMail', '$Password', '$FirstName', '$LastName',
'$MobilePhone', '$LandingPhone', @v_result)");
else
return !$this->Execute("call P_Pay_RegisterUser('$EMail', '$Password', '$FirstName', '$LastName', '$MobilePhone', '$LandingPhone',
'$Country','$City', '$Address', '$ZipCode', '$IPAddress', '$Recommender', @v_result)");
}
#Purpose: register account
#Desc: modify general account is default,must set $Admin is true where want to modify admin account.
#Return: true/false
function ModifyAccount($OpUser, $OpRemark, $OpIPAddress, $EMail, $Password, $NewPassword, $FirstName, $LastName,
$MobilePhone, $LandingPhone, $Country, $City, $Address, $ZipCode, $Admin = false) {
if( $Admin )
return !$this->Execute("call P_Pay_ModifyAdmin('$OpUser', '$OpRemark', '$OpIPAddress', '$EMail', '$Password', '$NewPassword',
'$FirstName', '$LastName', '$MobilePhone', '$LandingPhone', @v_Result)");
else
return !$this->Execute("call P_Pay_ModifyUser('$OpUser', '$OpRemark', '$OpIPAddress', '$EMail', '$Password', '$NewPassword',
'$FirstName', '$LastName', '$MobilePhone', '$LandingPhone', '$Country', '$City', '$Address', '$ZipCode', @v_Result)");
}
#############################################################################
#currency info
function GetCurrencyInfo() {
$rs = $this->Execute('SELECT CODE, FULLNAME, SHORTNAME, SYMBOL, RATE, STATUS FROM PAY_CURRENCYINFO ORDER BY CODE');
$arrCurrency = array();
while(!$rs->EOF) {
array_push($arrCurrency, array('Code'=>$rs->fields['CODE'],'FullName'=>$rs->fields['FULLNAME'],'ShortName'=>$rs->fields['ShortName'],
'Symbol'=>$rs->fields['SYMBOL'],'Rate'=>$rs->fields['RATE'],'Status'=>$rs->fields['STATUS']));
$rs->MoveNext();
}
return $arrCurrency;
}
function AddCurrency($FullName,$ShortName,$Symbol,$Rate, $Status) {
$this->Execute("INSERT INTO PAY_CURRENCYINFO VALUES(NULL, '$FullName', '$ShortName','$Symbol','$Rate',$Status)");
return true;
}
function ModifyCurrency($Code, $FullName,$ShortName,$Symbol,$Rate, $Status) {
$this->Execute("UPDATE PAY_CURRENCYINFO SET FULLNAME = $FullName, SHORTNAME=$ShortName,
SYMBOL=$Symbol, RATE=$Rate, STATUS=$Status WHERE CODE = $Code");
return true;
}
function DeleteCurrency($Code) {
$this->Execute("UPDATE PAY_CURRENCYINFO SET STATUS=3 WHERE CODE=$Code");
return true;
}
#######################################################################################
#Game
function GetGameInfo() {
$rs = $this->Execute('SELECT CODE, PIC_1, PIC_2, NAME, STATUS FROM PAY_GAME ORDER BY CODE');
$arrGame = array();
while (!$rs->EOF) {
array_push($arrGame, array('Code'=>$rs->fields['CODE'], 'PIC_1'=>$rs->fields['PIC_1'], 'PIC_2'=>$rs->fields['PIC_2'] ,'Name'=>$rs->fields['NAME'], 'Status'=>$rs->fields['STATUS']));
$rs->MoveNext();
}
return $arrGame;
}
function AddGame($GameName, $PIC_1, $PIC_2, $Status) {
$this->Execute("INSERT INTO PAY_GAME VALUES(NULL, $GameName,$PIC_1,$PIC_2,$Status)");
return true;
}
function ModifyGame($Code, $GameName) {
$this->Execute("UPDATE PAY_GAME SET NAME = $GameName WHERE CODE=$Code");
return true;
}
function DeleteGame($Code) {
$this->Execute("UPDATE PAY_GAME SET STATUS = 3 WHERE CODE=$Code");
return true;
}
#admin menu
function getAdminMenu() {
$rs = $this->Execute('select ModuleID,ModuleName, MenuID, MenuName, MenuURL from pay_adminmenu order by moduleid, MenuID');
$arrModule = array();
$arrMenu = array();
$ModuleID = null;
$ModuleName = null;
while(!$rs->EOF) {
if( $rs->fields['ModuleID'] != $ModuleID ) {
if( ($rs->CurrentRow()!=0) ) {
array_push($arrModule, array('ModuleID' => $ModuleID, 'ModuleName' => $ModuleName, 'Menu' => $arrMenu));
$arrMenu = array();
}
$ModuleID = $rs->fields['ModuleID'];
$ModuleName = $rs->fields['ModuleName'];
}
array_push($arrMenu, array('MenuID' => $rs->fields['MenuID'], 'MenuName' => $rs->fields['MenuName'], 'MenuURL' => $rs->fields['MenuURL']));
$rs->MoveNext();
}
array_push($arrModule, array('ModuleID' => $ModuleID, 'ModuleName' => $ModuleName, 'Menu' => $arrMenu));
return $arrModule;
}
#Purpose: execute SQL/PROC
#Desc: return original value(non-process) if $sql is any SQL or PROC only one out parameter.
# return result set if PROC hava N out parameters,but $out must is true
# and it return succeed only.
#Return: true/false/ResultSet
function & Execute($sql, $out = false, $inputarr = false) {
try {
if( strtoupper(substr(ltrim($sql),0,4)) != 'CALL' )
return $this->conn->Execute($sql,$inputarr);
else
{
$this->Execute('set @v_result;');
$this->conn->Execute($sql,$inputarr);
$rs = $this->Execute('select @v_result');
if( $out == false )
return $rs->fields['@v_result'];
elseif( $out && !$rs->fields['@v_result'] )
return $rs;
else
return false;
}
} catch (Exception $e) { }
}
}
?>
function smarty_prefilter_fixpath($tpl_source,&$smarty)
{
$temp = preg_replace("/((?<=[\"\'\(])(([\.\/]*?)[\w\/-]+?\.gif|([\.\/]*?)[\w\/-]+?\.jpg|([\.\/]*?)[\w\/-]+?\.css)(?=[\"\'\)]))/",
__THEMES_DIR."$1",$tpl_source);
return preg_replace("/\.\.\//",'',$temp);
}
function randString($size = 20)
{
$time = time();
$str = '11';
for ($i = 0; $i < $size; $i++)
{
srand($time);
$time = mt_rand(97, 122);
$str .= chr($time);
}
return $str;
}define(__RANDSRC,'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-----_____,,,,,');
function randCmd($cmd=null, $size = 64) {
$str = '';
for($pos = 0,$i=0; $i<$size; $i++) {
$shuffleStr = str_shuffle(__RANDSRC);
$str .= $shuffleStr[mt_rand(0, strlen(__RANDSRC))];
}
$_SESSION[$str]=$cmd;
return $str;
}
?>
void GetInterfaceAddress(char * ipAddress)
{
PIP_ADAPTER_INFO pAdapterInfo;
PIP_ADAPTER_INFO pAdapter = NULL;
DWORD dwRetVal = 0;
ULONG ulOutBufLen = sizeof(IP_ADAPTER_INFO)*16;
pAdapterInfo = (IP_ADAPTER_INFO *) new byte[ulOutBufLen];
if (GetAdaptersInfo( pAdapterInfo, &ulOutBufLen) == ERROR_BUFFER_OVERFLOW) {
delete [] pAdapterInfo;
pAdapterInfo = (IP_ADAPTER_INFO *) new byte[ulOutBufLen];
}
if ((dwRetVal = GetAdaptersInfo( pAdapterInfo, &ulOutBufLen)) == NO_ERROR) {
pAdapter = pAdapterInfo;
while(pAdapter)
{
if(pAdapter->Index == m_item.dwForwardIfIndex)
{
strcpy(ipAddress, pAdapter->IpAddressList.IpAddress.String);
delete [] pAdapterInfo;
return;
}
pAdapter = pAdapter->Next;
}
}
delete [] pAdapterInfo;
return;
}
PMIB_IPFORWARDTABLE GetRouteTable()
{
PMIB_IPFORWARDTABLE pIpForwardTable;
DWORD dwSize = sizeof(MIB_IPFORWARDTABLE)*64;
DWORD dwRetVal = 0;
pIpForwardTable = (PMIB_IPFORWARDTABLE) new byte[dwSize];
if (GetIpForwardTable(pIpForwardTable, &dwSize, 0) == ERROR_INSUFFICIENT_BUFFER) {
delete [] pIpForwardTable;
pIpForwardTable = (PMIB_IPFORWARDTABLE) new byte[dwSize];
}
if ((dwRetVal = GetIpForwardTable(pIpForwardTable, &dwSize, 0)) != NO_ERROR) {
TRACE("\tGetIpForwardTable failed.\n");
delete [] pIpForwardTable;
pIpForwardTable = NULL;
}
return pIpForwardTable;
}
// ProcMon.cpp : Defines the entry point for the console application.
//#include "stdafx.h"
#include
#include
#include
#include "psapi.h"#pragma comment(lib, "psapi.lib")/////////////////////////////////////////////////////////////////////////////
// The one and only application objectvoid GetDateTime(char * pDateTime);
BOOL WINAPI ConsoleRoutine(DWORD dwCtrlType);
BOOL GetProcessName( DWORD processID, TCHAR * lpszProcessName);int main(int argc, char* argv[])
{HANDLE hProc = GetCurrentProcess();
SetPriorityClass(hProc, 0x00004000); // BELOW_NORMAL_PRIORITY_CLASS
SetConsoleCtrlHandler(ConsoleRoutine, true);
system("title ProcessMonitor v0.1 by ");
//----------------------------------------------------------------
FILE *stream;
int nProcNum = 0;
char ProcList[32][MAX_PATH];
int i, j;char szBuffer[MAX_PATH];
char szDateTime[32];
char ActiveProc[128][MAX_PATH];
DWORD aProcesses[1024], cbNeeded, cProcesses;
//----------------------------------------------------------------
switch(argc) {
case 1:
break;
case 2:
if (strcmp(argv[1], "-h")==0||strcmp(argv[1], "-H")==0||strcmp(argv[1], "/?")==0)
{
printf("监控 Proclist.txt 文件列表中的进程\n\n");
printf("ProcMon [-d name] [-f filename]\n\n");
printf("\t-d\t将系统中的所有映像文件在Driver盘的进程写入文件。\n");
printf("\t-f\t产生的配置文件名称。\n\n");
printf("Example: ProcMon -driver d: -config Proclist.txt\n");
}
return 0;
case 5:
if (strcmp(argv[3], "-f")==0||strcmp(argv[3], "-F")==0)
{
stream = fopen(argv[4],"a");
if ( !EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded ) )
return 0;
// Calculate how many process identifiers were returned.
cProcesses = cbNeeded / sizeof(DWORD);
for ( i = 0, j=0; i < cProcesses; i++)
{
if(GetProcessName( aProcesses[i], szBuffer))
{
if (tolower(argv[2][0]) == tolower(szBuffer[0]))
{
fputs(szBuffer,stream);
fputs("\n",stream);
printf(szBuffer);
}
}
}
fclose(stream);
printf(" Create config file OK!\n");
}
return 0;
default:
printf("参数的数量不正确。\n");
return 0;
}//----------------------------------------------------------------
if( (stream = fopen("Proclist.txt", "r" )) != NULL )
{
while(fgets(ProcList[nProcNum], MAX_PATH, stream) != NULL)
{
if(ProcList[nProcNum][strlen(ProcList[nProcNum])-1]=='\n')
ProcList[nProcNum][strlen(ProcList[nProcNum])-1] = 0;
nProcNum++;
}
fclose( stream );
} else {
printf("was not found Proclist.txt\n" );
}
//----------------------------------------------------------------
while (TRUE)
{
if ( !EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded ) )
return 0;
// Calculate how many process identifiers were returned.
cProcesses = cbNeeded / sizeof(DWORD);
for ( i = 0, j=0; i < cProcesses; i++)
if(GetProcessName( aProcesses[i], ActiveProc[j]))
j++;cProcesses = j;
for ( i = 0; i < nProcNum; i++ )
for ( j = 0; j < cProcesses; j++)
if (strcmp(ProcList[i], ActiveProc[j]) == 0)
break;
else
if (j == cProcesses-1)
{
Sleep(30000);stream = fopen("run.log","a");
GetDateTime(szDateTime);if(WinExec(ProcList[i], SW_SHOWNORMAL) < 32)
sprintf(szBuffer, "%s%s%s\n", szDateTime, "Run ", ProcList[i], "FAILED.");
else
sprintf(szBuffer, "%s%s%s\n", szDateTime, "Run ", ProcList[i]);
printf(szBuffer);
fputs(szBuffer, stream);
fclose(stream);
break;
}Sleep(60000);
}
return 0;
}
BOOL WINAPI ConsoleRoutine(DWORD dwCtrlType)
{
if (dwCtrlType == CTRL_C_EVENT ||
dwCtrlType == CTRL_BREAK_EVENT ||
dwCtrlType == CTRL_CLOSE_EVENT ||
dwCtrlType == CTRL_SHUTDOWN_EVENT)
{
ExitProcess(0);
return true;
}
return false;
}BOOL GetProcessName( DWORD processID, TCHAR * lpszProcessName)
{
TCHAR szProcessName[MAX_PATH] = TEXT("");
// Get a handle to the process.
HANDLE hProcess = OpenProcess( PROCESS_QUERY_INFORMATION |
PROCESS_VM_READ,
FALSE, processID );
// Get the process name.
if (NULL != hProcess )
{
HMODULE hMod;
DWORD cbNeeded;
if ( EnumProcessModules( hProcess, &hMod, sizeof(hMod),
&cbNeeded) )
{
GetModuleFileNameEx( hProcess, hMod, szProcessName,
sizeof(szProcessName)/sizeof(TCHAR) );
}
}
CloseHandle( hProcess );
if(strcmp(szProcessName, "") == 0)
return FALSE;
else
{
strcpy(lpszProcessName, szProcessName);
return TRUE;
}
}void GetDateTime(char * pDateTime)
{
time_t t_cur = time(0);
tm* tm_cur = localtime(&t_cur);
strftime(pDateTime, 32, "[%Y-%m-%d %H:%M:%S] ", tm_cur);
return;
}
set @v_result = null;
call P_TEST('654321','123456',@v_result);
select @v_result;