荣耀畅玩7 下载X选哪个版本好

Linux下用C实现Ping监测与HTTP报文上传_Linux编程_Linux公社-Linux系统门户网站
你好,游客
Linux下用C实现Ping监测与HTTP报文上传
来源:Linux社区&
作者:my2005lb
  有一个数据中心监测项目,命名为CPing,它的主要原理通过WEB进行前台统一配置管理,后台定期对数据中心相关设备执行Ping操作,并将结果及时写入到数据库。
  该项目基于Linux平台部署,前端开发语言采用PHP,后台开发语言采用C,由于考量到项目的部署简洁性,后台开发的守护进程尽量不直接操作数据库,而是将需要写入的数据以HTTP的形式发送给PHP的WEB页面,由PHP完成写入操作。这样的好处是后台守护进程部署时不需要配置相关数据库接入环境。
  下面给出一段后台代码,作用是执行Ping操作,并将结果封装成HTTP报文发送至WEB端。&
&span xmlns="http://www.w3.org/1999/xhtml" style=""&//---------------------------------------------------------//& HTTPSinge.c ./http & 0/1 80 127.0.0.1 80 // 用于执行HTTP命令,并将结果通过HTTP GET方式传至WEB数据库//& & &
my2005lb ////---------------------------------------------------------#include &sys/stat.h&#include &fcntl.h&#include &errno.h&#include &netdb.h&#include &sys/types.h&#include &sys/socket.h&#include &netinet/in.h&#include &arpa/inet.h&#include &string.h&#include &stdlib.h&#include &stdio.h&#include &unistd.h&
char* URLTOIP(char *argv){&struct hostent *h;&if((h=gethostbyname(argv))==NULL)&{& fprintf(stderr,"不能得到IP/n");& exit(1);&}&printf("HostName :%s/n",h-&h_name);&printf("IP Address :%s/n",inet_ntoa(*((struct in_addr *)h-&h_addr)));&return inet_ntoa(*((struct in_addr *)h-&h_addr));}// 执行PING 操作int HTTPScan(char *argv,int nPort,int nType,double *pRet){&struct sockaddr_in serverA&int clientS&int nCount = 0;&char sendbuf[2000];&char recvbuf[2000];&if((clientSocket=socket(AF_INET,SOCK_STREAM,0)) & 0)& return -1; & &&serverAddr.sin_family=AF_INET;&serverAddr.sin_port=htons(nPort);&printf("%s\n",URLTOIP(argv));&serverAddr.sin_addr.s_addr=inet_addr(URLTOIP(argv));&if(connect(clientSocket,( struct sockaddr * )&serverAddr,sizeof(serverAddr)) & 0)& return -1; &
&//printf("%s\n",sendbuf);&sprintf(sendbuf,"HEAD http://%s/ HTTP/1.1\r\nHOST: %s\r\nCONNECTION: CLOSED\r\n\r\n",argv,argv);
&send(clientSocket,sendbuf,strlen(sendbuf),0);&recv(clientSocket,recvbuf,sizeof(recvbuf),0);&printf("%s\n",recvbuf);&close(clientSocket);&return nC}// 执行向远程数据中心上报数据int ProcessSQLUpdate(char *strURL,char *strIP,int nPort,char *sendbuf){&
&struct sockaddr_in serverA&int clientS&char recvbuf[2000];&if((clientSocket=socket(AF_INET,SOCK_STREAM,0)) & 0)& return -1; & &&serverAddr.sin_family=AF_INET;&serverAddr.sin_port=htons(nPort);&serverAddr.sin_addr.s_addr=inet_addr(strIP);&if(connect(clientSocket,( struct sockaddr * )&serverAddr,sizeof(serverAddr)) & 0)& return -1; &
&//printf("%s\n",sendbuf);&send(clientSocket,sendbuf,strlen(sendbuf),0);&recv(clientSocket,recvbuf,sizeof(recvbuf),0);&//printf("%s\n",recvbuf);&close(clientSocket);&return 0;}int main(int argc,char *argv[]){&&char strIP[250];&int nIPPort = 80;&char strURL[250];&int nPort = 80;&double pRet[6];&int nType=0;&int nCount = 0;&char sendbuf[2000];
&if(argc != 6) return 0;&// ./http .cn 1/0 80 127.0.0.1 80(1为HTTPS,0为HTTP)&// url&if(strlen(argv[1]) & 0 && strlen(argv[1]) & 200)& sprintf(strURL,"%s",argv[1]);&else& return 0;&&// http https &if(strlen(argv[2]) & 0 && strlen(argv[2]) & 2)& nType = atoi(argv[2]);&else& return 0;
&// scan port&if(strlen(argv[3]) & 0 && strlen(argv[3]) & 6)& nIPPort = atoi(argv[3]);&else& return 0;
&// ip &if(strlen(argv[4]) & 0 && strlen(argv[4]) & 160)& sprintf(strIP,"%s",argv[4]);&else& sprintf(strIP,"127.0.0.1");
&if(strlen(argv[5]) & 0 && strlen(argv[5]) &= 5)& nPort = atoi(argv[5]);& & printf("%s %d %d %s %d\n",strIP,nIPPort,nType,strURL,nPort);
&// process ping &nCount = HTTPScan(strURL,nIPPort,nType,pRet);
&if(nCount == 2)& sprintf(sendbuf,"GET http://%s/CPing/update/http.php?name=%s&lost=%f HTTP/1.1\r\nHOST: %s\r\nCONNECTION: CLOSED\r\n\r\n",strIP,strURL,pRet[1],strIP); &else if(nCount == 6)& sprintf(sendbuf,"GET http://%s/CPing/update/http.php?name=%s&lost=%f&avg=%f HTTP/1.1\r\nHOST: %s\r\nCONNECTION: CLOSED\r\n\r\n",strIP,strURL,pRet[1],pRet[3],strIP); &else & sprintf(sendbuf,"GET http://%s/CPing/update/http.php?name=%s&lost=-1&lost=-1 HTTP/1.1\r\nHOST: %s\r\nCONNECTION: CLOSED\r\n\r\n",strIP,strURL,strIP);
//&ProcessSQLUpdate(strURL,strIP,nPort,sendbuf);&/*& printf("Min Value: %f\n",pRet[2]);& printf("Avg Value: %f\n",pRet[3]);& printf("Max Value: %f\n",pRet[4]);& printf("MDev Value: %f\n",pRet[5]);&*/&return 0;}&/span&
C++ Primer Plus 第6版 中文版 清晰有书签PDF+源代码
读C++ Primer 之构造函数陷阱
读C++ Primer 之智能指针
读C++ Primer 之句柄类
将C语言梳理一下,分布在以下10个章节中:
Linux-C成长之路(一):Linux下C编程概要
Linux-C成长之路(二):基本数据类型
Linux-C成长之路(三):基本IO函数操作
Linux-C成长之路(四):运算符
Linux-C成长之路(五):控制流
Linux-C成长之路(六):函数要义
Linux-C成长之路(七):数组与指针
Linux-C成长之路(八):存储类,动态内存
Linux-C成长之路(九):复合数据类型
Linux-C成长之路(十):其他高级议题
本文永久更新链接地址:
相关资讯 & & &
& (02月09日)
& (08/04/:48)
& (03月05日)
& (08/05/:15)
& (04/11/:44)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款Linux下用c语言实现发送http请求 方式可以Get或者Post
- 开源中国社区
当前访客身份:游客 [
当前位置:
发布于 日 11时,
Linux下用c语言实现发送http请求 方式可以Get或者Post&&
代码片段(1)
1.&[代码]Linux下用c语言实现发送http请求 方式可以Get或者Post
#include &stdio.h&
#include &sys/socket.h&
#include &sys/types.h&
#include &time.h&
#include &errno.h&
#include &signal.h&
#include &stdlib.h&
#include &string.h&
#include &unistd.h&
#include &sys/wait.h&
#include &sys/time.h&
#include &netinet/in.h&
#include &arpa/inet.h&
#define IPSTR "61.147.124.120"
#define PORT 80
#define BUFSIZE 1024
int main(int argc, char **argv)
int sockfd, ret, i,
struct sockaddr_
char str1[4096], str2[4096], buf[BUFSIZE], *
if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) & 0 ) {
printf("创建网络连接失败,本线程即将终止---socket error!\n");
bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(PORT);
if (inet_pton(AF_INET, IPSTR, &servaddr.sin_addr) &= 0 ){
printf("创建网络连接失败,本线程即将终止--inet_pton error!\n");
if (connect(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr)) & 0){
printf("连接到服务器失败,connect error!\n");
printf("与远端建立了连接\n");
//发送数据
memset(str2, 0, 4096);
strcat(str2, "qqCode=");
str=(char *)malloc(128);
len = strlen(str2);
sprintf(str, "%d", len);
memset(str1, 0, 4096);
strcat(str1, "POST /webservices/qqOnlineWebService.asmx/qqCheckOnline HTTP/1.1\n");
strcat(str1, "Host: .cn\n");
strcat(str1, "Content-Type: application/x-www-form-urlencoded\n");
strcat(str1, "Content-Length: ");
strcat(str1, str);
strcat(str1, "\n\n");
strcat(str1, str2);
strcat(str1, "\r\n\r\n");
printf("%s\n",str1);
ret = write(sockfd,str1,strlen(str1));
if (ret & 0) {
printf("发送失败!错误代码是%d,错误信息是'%s'\n",errno, strerror(errno));
printf("消息发送成功,共发送了%d个字节!\n\n", ret);
FD_ZERO(&t_set1);
FD_SET(sockfd, &t_set1);
tv.tv_sec= 0;
tv.tv_usec= 0;
printf("---------------&1");
h= select(sockfd +1, &t_set1, NULL, NULL, &tv);
printf("---------------&2");
//if (h == 0)
if (h & 0) {
close(sockfd);
printf("在读取数据报文时SELECT检测到异常,该异常导致线程终止!\n");
return -1;
if (h & 0){
memset(buf, 0, 4096);
i= read(sockfd, buf, 4095);
if (i==0){
close(sockfd);
printf("读取数据报文时发现远端关闭,该线程终止!\n");
return -1;
printf("%s\n", buf);
close(sockfd);
开源中国-程序员在线工具:
可以联系一下吗,我在一个项目中用到了这个,但是不是很懂,求详解,我的QQ:
2楼:xuin 发表于
学习啦,感谢
开源从代码分享开始
aiyao的其它代码http c语言实现的在linux下编译的,可以通过输入地址文件名下载服务器上的 码,封装 Network 网络 243万源代码下载-
&文件名称: http& & [
& & & & &&]
&&所属分类:
&&开发工具: C-C++
&&文件大小: 125 KB
&&上传时间:
&&下载次数: 0
&&提 供 者:
&详细说明:c语言实现的在linux下编译的,可以通过输入地址文件名下载服务器上的文件的源码,封装了中间层,便于在不同平台上移植。-c language compiler in linux, you can file by entering the address on file name to download server source code, encapsulate the intermediate layer, easy to transplant on different platforms.
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&http\.svn\entries&&....\....\format&&....\....\pristine\0e\0e4d4d45e1cea7551adc0126b8edca.svn-base&&....\....\........\13\afb9cce49db4e8d551aca1.svn-base&&....\....\........\..\fde86743ffc.svn-base&&....\....\........\.7\172f29c33e8465abab39dd2e3cdb4.svn-base&&....\....\........\23\23d8dbaac1aad2f8b6c45ab774d5485.svn-base&&....\....\........\.7\27f2f329a96df5ab.svn-base&&....\....\........\.c\2cfa34a7d57bee6b16f6f.svn-base&&....\....\........\.d\2de30dfe814c9f22cddc8b55f1cb4d.svn-base&&....\....\........\37\66f4f73602aef20ef4.svn-base&&....\....\........\.a\3a6c8f491529ccf1a813b2b8b4c5.svn-base&&....\....\........\42\42fe3adc80a7b872ec5.svn-base&&....\....\........\56\fcc3e4f2b4fdf07e0dbc6bb3d30afc2.svn-base&&....\....\........\.a\5a0a72bd43dde837bc99ae331c8365.svn-base&&....\....\........\62\a92aa5db4c1f29ff0.svn-base&&....\....\........\.c\6c63312fbf5bc03ec5b7a67d254f.svn-base&&....\....\........\74\744fa30defaa44d6623ffc942f645aaf.svn-base&&....\....\........\80\802aee7fd7efcaee3435adc61c3464.svn-base&&....\....\........\..\805a0879ceb2dbb8aa3fa56c6e11fac5.svn-base&&....\....\........\.f\8f1f81feedcaad343e68b0d4e31d924.svn-base&&....\....\........\9b\9b23bd59d372edd60e0.svn-base&&....\....\........\..\9b2f4bfd7f9e7a729ac954f3a3bee.svn-base&&....\....\........\.f\9fedeeca85a5a528b8c9425.svn-base&&....\....\........\b0\b0edaf4c157baaccac0ce8afa250.svn-base&&....\....\........\c0\c903b867ff97a09f4b.svn-base&&....\....\........\d2\d27d50ab566c53bcf.svn-base&&....\....\........\f2\f23dc4ec85a47a36e1c45bd22bc2d.svn-base&&....\....\........\.f\ff8ed3bb97b4d31c88ec4f2406980b.svn-base&&....\....\wc.db&&....\hash_md5.c&&....\hash_md5.h&&....\http_filedownload.c&&....\http_filedownload.h&&....\http_filedownloadbp.c&&....\http_filedownloadbp.h&&....\http_load&&....\http_loadbp&&....\http_portinglayer.c&&....\http_portinglayer.h&&....\main.c&&....\.svn\pristine\0e&&....\....\........\13&&....\....\........\17&&....\....\........\23&&....\....\........\27&&....\....\........\2c&&....\....\........\2d&&....\....\........\37&&....\....\........\3a&&....\....\........\42&&....\....\........\56&&....\....\........\5a&&....\....\........\62&&....\....\........\6c&&....\....\........\74&&....\....\........\80&&....\....\........\8f&&....\....\........\9b&&....\....\........\9f&&....\....\........\b0&&....\....\........\c0&&....\....\........\d2&&....\....\........\f2&&....\....\........\ff&&....\....\pristine&&....\....\tmp&&....\.svn&&http
&输入关键字,在本站243万海量源码库中尽情搜索:1891人阅读
在linux 下用于发送简单post请求。&/pre&&pre code_snippet_id=&1784587& snippet_file_name=&blog__6356653& name=&code& class=&cpp&&#include &stdio.h&
#include &string.h&
#include &sys/socket.h&
#include &arpa/inet.h&
#include &unistd.h&
#include &netinet/in.h&
#include &stdlib.h&
#define MAXLINE 1024
int post(char *ip,int port,char *page,char *msg){
int sockfd,n;
char recvline[MAXLINE];
struct sockaddr_
char content[4096];
char content_page[50];
sprintf(content_page,&POST /%s HTTP/1.1\r\n&,page);
char content_host[50];
sprintf(content_host,&HOST: %s:%d\r\n&,ip,port);
char content_type[] = &Content-Type: application/x-www-form-urlencoded\r\n&;
char content_len[50];
sprintf(content_len,&Content-Length: %d\r\n\r\n&,strlen(msg));
sprintf(content,&%s%s%s%s%s&,content_page,content_host,content_type,content_len,msg);
if((sockfd = socket(AF_INET,SOCK_STREAM,0)) & 0)
printf(&socket error\n&);
bzero(&servaddr,sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(80);
if(inet_pton(AF_INET,ip,&servaddr.sin_addr) &= 0)
printf(&inet_pton error\n&);
if(connect(sockfd,(struct sockaddr *)&servaddr,sizeof(servaddr)) & 0)
printf(&connect error\n&);
write(sockfd,content,strlen(content));
while((n = read(sockfd,recvline,MAXLINE)) & 0)
recvline[n] = 0;
if(fputs(recvline,stdout) == EOF)
printf(&fputs error\n&);
printf(&read error\n&);
int main()
char msg[] = &name=A&id=1&;
char ip[] = &192.168.1.2&;
int port = 80;
char page[] = &xxxx.do&;
post(ip,80,page,msg);
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:53154次
排名:千里之外
原创:39篇
评论:146条
(7)(1)(5)(1)(1)(12)(1)(1)(13)(2)(2)天野_银次 的BLOG
用户名:天野_银次
访问量:1611
注册日期:
阅读量:5863
阅读量:12276
阅读量:424893
阅读量:1113289
51CTO推荐博文
实验拓扑:&& &&& &&&&&&&& &&& &&& &Linux Client-----RHEL5.9(vmnet1)----------(vmnet1)&& &&& &&&&&&& &&& &&& & Win7 Client实验一:查看默认HTTP配置&& &找到默认红帽欢迎页面(/etc/httpd/conf/httpd.conf ----&Include ----&&/etc/httpd/conf.d& ----& welcome.conf& ----&&/var/www/error/noindex.html)& //通过主配置文件一步步查找到默认页面前提条件:1,配置IP[root@svr1 conf.d]# cat /etc/sysconfig/network-scripts/ifcfg-eth0&# Intel Corporation 82545EM Gigabit Ethernet Controller&(Copper)DEVICE=eth0BOOTPROTO=staticHWADDR=00:0C:29:DB:02:CEONBOOT=yesIPADDR=192.168.1.253NETMASK=255.255.255.02,主机名[root@svr1 conf.d]# cat /etc/sysconfig/networkNETWORKING=yesNETWORKING_IPV6=yesHOSTNAME=GATEWAY=192.168.1.13,hosts文件[root@svr1 conf.d]# cat /etc/hosts# Do not remove the following line, or various programs# that require network functionality will fail.127.0.0.1&& &&& &localhost.localdomain localhost::1&& &&& &localhost6.localdomain6 localhost6192.168.1.253&& & svr1[root@svr1 yum.repos.d]# yum -y install httpd&& &//安装[root@svr1 ~]# vim /etc/httpd/conf/httpd.confInclude conf.d/*.conf&& &&& &//套用conf.d下以.conf结尾的配置文件[root@svr1 conf.d]# service httpd restart[root@svr1 conf.d]# chkconfig httpd on&& &&& &//启动服务实验二:基本HTTP服务器的配置&& &Web服务器域名:&& &默认首页包括:index.html、index.php&& &开启保持连接&& &确认默认httpd是否支持php&& &&& &网站用老师提供的test_web.zip测试服务器操作:[root@localhost ~]# cd /etc/httpd/conf[root@localhost conf]# cp httpd.conf httpd.conf.bak&& &//备份主配置文件[root@localhost ~]# vim /etc/httpd/conf/httpd.conf&& &//修改参数&...&74 KeepAlive On&& &&& &&& &//开启保持连接...265 ServerName && &&& &//服务器域名...391 DirectoryIndex index.html index.php&& &//默认的首页文件...[root@localhost ~]# cd /root/Desktop/[root@localhost Desktop]# unzip test_web.zip&[root@localhost Desktop]# mv jiajutiyan/* /var/www/html/&& &//把测试页面放入网站默认的根路径/var/www/html4、编写测试php页面[root@localhost ~]# cat /var/www/html/test.php //写一个php测试文档&?php&&&&&&& phpinfo();?&测试:[root@svr1 ~]# elinks && &//linux文本模式下利用elinks可以测试网页可否访问192.168.10.254&& &&& &www&& &//在客户端指定hosts文件&& &&& &//会显示出/var/www/html下的网站/test.php&& &//查看是否支持php,现在没有安装php所以看到的是文档里写的字符实验三:只允许192.168.1.10访问允许所有用户访问/authdir/index.html[root@svr1 html]# vim /etc/httpd/conf/httpd.conf&directory /var/www/html&&&& Order allow,deny&& &//认证规则allow,deny为先允许再拒绝,默认拒绝所有;deny,allow为先拒绝在允许,默认允许所有&#&& Allow from all&&& Allow from 192.168.1.10&& &//允许192.168.1.10访问&/Directory&&directory /var/www/html/authdir&order allow,denyallow from all&& &&& &&& &//允许所有访问/authdir/&/directory&[root@svr1 html]# mkdir -p /var/www/html/authdir[root@svr1 html]# echo "aaaaa"&&/var/www/html/authdir/index.html重启服务后分别在客户端测试结果应该为1.10可以访问上述两个站点,其他客户机只能访问/authdir/index.html实验四:HTTP的用户授权客户端访问 需要输入用户名密码 验证1,修改主配置文件[root@svr1 html]# vim /etc/httpd/conf/httpd.conf&directory /var/www/html/authdir&order allow,denyallow from allauthname "please input password!"&& &//用于弹窗提示authtype "basic"&& &&& &&& &//认证类别,一般为basicauthuserfile "/etc/httpd/.passwd"&& &//认证用户文件require valid-user&& &&& &&& &//指定授权用户或者组valid-user为所有认证用户也可以写为user user1 user2 ...& group&组1 组2 ...&/directory&[root@svr1 html]# htpasswd -c /etc/httpd/.passwd user1&& //创建认证用户-c表示新建文件,在第一次创建的时候添加,之后再创建用户加-c之前的用户会清空New password:&Re-type new password:&Adding password for user user1重启服务,在客户机测试实验五:HTTP目录别名客户端访问/aa时可以访&问/var/www/html/aa/bb下的网页1、创建测试站点[root@svr1 html]# cd /var/www/html/[root@svr1 html]# mkdir -p aa/bb/[root@svr1 html]# echo "&h6&aaa&/h6&" &aa/bb/index.html2,修改配置文件[root@svr1 html]# vim /etc/httpd/conf/httpd.confalias /aa /var/www/html/aa/bb重启服务后在客户端测试实验六:&& &查看默认HTTP使用进程管理方式&& &更改默认进程管理方式为worker模式[root@svr1 bb]# httpd -l&& &查看httpd启用的模块Compiled in modules:& core.c& prefork.c&& &//httpd默认的工作模式,比较稳定,但是占用的资源高& http_core.c& mod_so.c把prefork模式改为worker模式[root@svr1 bb]# cd /usr/sbin/[root@svr1 sbin]# mv httpd httpd.prefork[root@svr1 sbin]# mv httpd.worker httpd&& &&& &//移动启动脚本[root@svr1 sbin]# service httpd restart&& &&& &//重启服务查看效果[root@svr1 sbin]# httpd -lCompiled in modules:& core.c& worker.c&& &&& &//发现启动模式改为了worker,worker处理高并发的能力更强,但是不稳定& http_core.c& mod_so.c&IfModule prefork.c&&& &//prefork.c配置prefork模块StartServers&&&&&& 8&& &//启动服务时开启8个进程MinSpareServers&&& 5&& &//最小空闲进程数,空闲进程不足5时建立新的进程MaxSpareServers&& 20&& &//最大空闲进程ServerLimit&&&&& 256&& &//进程限制为265以内MaxClients&&&&&& 256&& &//最大进程数,不可大于serverlimitMaxRequestsPerChild& 4000&& &//最大请求&/IfModule&试验七:&& &部署Awstats统计Http访问日志1,解压安装[root@svr1 ~]# tar zxf awstats-7.1.tar.gz -C /usr/src/[root@svr1 ~]# cd /usr/src/[root@svr1 src]# mv awstats-7.1/ /usr/local/awstats[root@svr1 src]# cd /usr/local/awstats/&& &[root@svr1 awstats]# ./tools/awstats_configure.pl& //配置脚本Enter full config file path of your Web server.Example: /etc/httpd/httpd.confExample: /usr/local/apache2/conf/httpd.confExample: c:\Program files\apache group\apache\conf\httpd.confConfig file path ('none' to skip web server setup):& /etc/httpd/conf/httpd.conf&& &&& &//httpd主配置文件路径-----& Need to create a new config file ?Do you want me to build a new AWStats config/profilefile (required if first install) [y/N] ? y&& &//创建一个新配置文件&& &-----& Define config file name to createWhat is the name of your web site or profile analysis ?Example: Example: demoYour web site, virtual server or profile name:& && &//域名-----& Define config file pathIn which directory do you plan to store your config file(s) ?Default: /etc/awstatsDirectory path to store config file(s) (Enter for default):& && &//配置文件路径,默认,一路回车完成安装[root@svr1 awstats]# mkdir -p /var/lib/awstats&& &//创建数据库文件夹[root@svr1 awstats]# vim&/etc/awstats/awstats..confLogFile="/var/log/httpd/access_log"&& &//修改httpd日志路径[root@svr1 awstats]#&/usr/local/awstats/tools/awstats_updateall.pl now&& &//更新日志文件[root@svr1 awstats]# crontab -e&& &//添加计划任务,五分钟刷新一次*/8 * * * * /usr/local/awstats/tools/awstats_updateall.pl now[root@svr1 awstats]# vim /var/www/html/awstats.html&& &//通过html语言实现网页跳转功能&html&&head&&meta http-equiv=refresh content="0; &url=/awstats/awstats.pl?&config="&&/head&&body&&/body&&/html&重启服务测试在客户端修改hosts文件192.168.1.253 然后通过/awstats.html访问
了这篇文章
类别:未分类┆阅读(0)┆评论(0)

我要回帖

更多关于 荣耀畅玩6x 的文章

 

随机推荐