① 能在网上在线编译C语言,并编译呈现出来的网站是什么
Ideone
Ideone(http://ideone.com/)是一个在线多语言编程执行器工具,可以在线直接做编译和执行动作,支持包括C++,Java,JavaScript,Perl,PHP,Python和Ruby在内的40多种编程语言.Ideone是一个简易的编程测试工具,虽然不能替代专业版的工具,但是其功能非常全面.,该页面上有不少广告,看的有点不爽.
望采纳~
有问题欢迎继续追问
② ipad能够编程吗
iPad上是能够进行编程的,因为在2016年6月14日,苹果召开WWDC16开发者大会上,围绕开发者主题推出了一款iPad平台的应用开发工具Swift Playgrounds,现在开发者可以直接在iPad进行编程了。
SwiftPlaygrounds这款app是一款适用于编程初学者的 iPad app,它让用户可以一边写代码,一边看到代码造就的成果。在左侧输入代码,在右侧立即就能呈现效果。
同时,Swift 是一种新的编程语言,可用于编写 iOS 和 macOS 应用,它结合了 C 和 Objective-C 的优点并且不受C兼容性的限制。
(2)perl在线编译扩展阅读:
Swift 作为一种快速而高效的语言,有着它自己的独特优势,Swift 将现代编程语言的精华和苹果工程师文化的智慧结合了起来。编译器对性能进行了优化,编程语言对开发进行了优化,两者互不干扰。Swift 既可以用于开发“hello, world”这样的小程序,也可以用于开发一套完整的操作系统。
早在2015年12月4日,苹果公司就已经宣布其Swift编程语言现在开放源代码,长达600多页的The Swift Programming Language可以在线免费下载,同时也可以在苹果官方Github下载。
参考资料来源:网络-SWIFT (计算机编程语言)
③ 如何 编译 ngx
一、必要软件准备
1.安装pcre
为了支持rewrite功能,我们需要安装pcre
复制代码代码如下:
# yum install pcre* //如过你已经装了,请跳过这一步
2.安装openssl
需要ssl的支持,如果不需要ssl支持,请跳过这一步
复制代码代码如下:
# yum install openssl*
3.gzip 类库安装
复制代码代码如下:
yum install zlib zlib-devel
4.安装wget
下载nginx使用,如果已经安装,跳过这一步
复制代码代码如下:
# yum install wget
二、安装nginx
1.下载
复制代码代码如下:
wget http://nginx.org/download/nginx-1.7.0.tar.gz
2.解压
复制代码代码如下:
tar -zxvf nginx-1.7.0.tar.gz
3.编译和安装
执行如下命令:
复制代码代码如下:
# cd nginx-1.7.0
# ./configure --prefix=/usr/local/nginx-1.7.0 \
--with-http_ssl_mole --with-http_spdy_mole \
--with-http_stub_status_mole --with-pcre
–with-http_stub_status_mole:支持nginx状态查询
–with-http_ssl_mole:支持https
–with-http_spdy_mole:支持google的spdy,想了解请网络spdy,这个必须有ssl的支持
–with-pcre:为了支持rewrite重写功能,必须制定pcre
最后输出如下内容,表示configure OK了。
复制代码代码如下:
checking for zlib library ... found
creating objs/Makefile
Configuration summary
+ using system PCRE library
+ using system OpenSSL library
+ md5: using OpenSSL library
+ sha1: using OpenSSL library
+ using system zlib library
nginx path prefix: "/usr/local/nginx-1.7.0"
nginx binary file: "/usr/local/nginx-1.7.0/sbin/nginx"
nginx configuration prefix: "/usr/local/nginx-1.7.0/conf"
nginx configuration file: "/usr/local/nginx-1.7.0/conf/nginx.conf"
nginx pid file: "/usr/local/nginx-1.7.0/logs/nginx.pid"
nginx error log file: "/usr/local/nginx-1.7.0/logs/error.log"
nginx http access log file: "/usr/local/nginx-1.7.0/logs/access.log"
nginx http client request body temporary files: "client_body_temp"
nginx http proxy temporary files: "proxy_temp"
nginx http fastcgi temporary files: "fastcgi_temp"
nginx http uwsgi temporary files: "uwsgi_temp"
nginx http scgi temporary files: "scgi_temp"
# make //确定你的服务器有安装make,如果没有安装请执行yum install make
# make install
三、启动、关闭、重置nginx
启动:直接执行以下命令,nginx就启动了,不需要改任何配置文件,nginx配置多域名虚拟主机请参考后续文章.
复制代码代码如下:
/usr/local/nginx-1.7.0/sbin/nginx
试试访问:直接使用curl命令来读取web信息
复制代码代码如下:
[root@ns conf]
# curl -s http://localhost | grep nginx.com
nginx.com.
关闭:
复制代码代码如下:
/usr/local/nginx-1.7.0/sbin/nginx -s stop
重置:当你有修改配置文件的时候,只需要reload以下即可
复制代码代码如下:
/usr/local/nginx-1.7.0/sbin/nginx -s reload
整个nginx的安装就到这里结束了。
四、nginx编译参数详解
复制代码代码如下:
–prefix= 指向安装目录
–sbin-path 指向(执行)程序文件(nginx)
–conf-path= 指向配置文件(nginx.conf)
–error-log-path= 指向错误日志目录
–pid-path= 指向pid文件(nginx.pid)
–lock-path= 指向lock文件(nginx.lock)(安装文件锁定,防止安装文件被别人利用,或自己误操作。)
–user= 指定程序运行时的非特权用户
–group= 指定程序运行时的非特权用户组
–builddir= 指向编译目录
–with-rtsig_mole 启用rtsig模块支持(实时信号)
–with-select_mole 启用select模块支持(一种轮询模式,不推荐在高载环境下使用)禁用:–without-select_mole
–with-poll_mole 启用poll模块支持(功能与select相同,与select特性相同,为一种轮询模式,不推荐在高载环境下使用)
–with-file-aio 启用file aio支持(一种APL文件传输格式)
–with-ipv6 启用ipv6支持
–with-http_ssl_mole 启用ngx_http_ssl_mole支持(使支持https请求,需已安装openssl)
–with-http_realip_mole 启用ngx_http_realip_mole支持(这个模块允许从请求标头更改客户端的IP地址值,默认为关)
–with-http_addition_mole 启用ngx_http_addition_mole支持(作为一个输出过滤器,支持不完全缓冲,分部分响应请求)
–with-http_xslt_mole 启用ngx_http_xslt_mole支持(过滤转换XML请求)
–with-http_image_filter_mole 启用ngx_http_image_filter_mole支持(传输JPEG/GIF/PNG 图片的一个过滤器)(默认为不启用。gd库要用到)
–with-http_geoip_mole 启用ngx_http_geoip_mole支持(该模块创建基于与MaxMind GeoIP二进制文件相配的客户端IP地址的ngx_http_geoip_mole变量)
–with-http_sub_mole 启用ngx_http_sub_mole支持(允许用一些其他文本替换nginx响应中的一些文本)
–with-http_dav_mole 启用ngx_http_dav_mole支持(增加PUT,DELETE,MKCOL:创建集合,COPY和MOVE方法)默认情况下为关闭,需编译开启
–with-http_flv_mole 启用ngx_http_flv_mole支持(提供寻求内存使用基于时间的偏移量文件)
–with-http_gzip_static_mole 启用ngx_http_gzip_static_mole支持(在线实时压缩输出数据流)
–with-http_random_index_mole 启用ngx_http_random_index_mole支持(从目录中随机挑选一个目录索引)
–with-http_secure_link_mole 启用ngx_http_secure_link_mole支持(计算和检查要求所需的安全链接网址)
–with-http_degradation_mole 启用ngx_http_degradation_mole支持(允许在内存不足的情况下返回204或444码)
–with-http_stub_status_mole 启用ngx_http_stub_status_mole支持(获取nginx自上次启动以来的工作状态)
–without-http_charset_mole 禁用ngx_http_charset_mole支持(重新编码web页面,但只能是一个方向–服务器端到客户端,并且只有一个字节的编码可以被重新编码)
–without-http_gzip_mole 禁用ngx_http_gzip_mole支持(该模块同-with-http_gzip_static_mole功能一样)
–without-http_ssi_mole 禁用ngx_http_ssi_mole支持(该模块提供了一个在输入端处理处理服务器包含文件(SSI)的过滤器,目前支持SSI命令的列表是不完整的)
–without-http_userid_mole 禁用ngx_http_userid_mole支持(该模块用来处理用来确定客户端后续请求的cookies)
–without-http_access_mole 禁用ngx_http_access_mole支持(该模块提供了一个简单的基于主机的访问控制。允许/拒绝基于ip地址)
–without-http_auth_basic_mole禁用ngx_http_auth_basic_mole(该模块是可以使用用户名和密码基于http基本认证方法来保护你的站点或其部分内容)
–without-http_autoindex_mole 禁用disable ngx_http_autoindex_mole支持(该模块用于自动生成目录列表,只在ngx_http_index_mole模块未找到索引文件时发出请求。)
–without-http_geo_mole 禁用ngx_http_geo_mole支持(创建一些变量,其值依赖于客户端的IP地址)
–without-http_map_mole 禁用ngx_http_map_mole支持(使用任意的键/值对设置配置变量)
–without-http_split_clients_mole 禁用ngx_http_split_clients_mole支持(该模块用来基于某些条件划分用户。条件如:ip地址、报头、cookies等等)
–without-http_referer_mole 禁用disable ngx_http_referer_mole支持(该模块用来过滤请求,拒绝报头中Referer值不正确的请求)
–without-http_rewrite_mole 禁用ngx_http_rewrite_mole支持(该模块允许使用正则表达式改变URI,并且根据变量来转向以及选择配置。如果在server级别设置该选项,那么他们将在 location之前生效。如果在location还有更进一步的重写规则,location部分的规则依然会被执行。如果这个URI重写是因为location部分的规则造成的,那么 location部分会再次被执行作为新的URI。 这个循环会执行10次,然后Nginx会返回一个500错误。)
–without-http_proxy_mole 禁用ngx_http_proxy_mole支持(有关代理服务器)
–without-http_fastcgi_mole 禁用ngx_http_fastcgi_mole支持(该模块允许Nginx 与FastCGI 进程交互,并通过传递参数来控制FastCGI 进程工作。 )FastCGI一个常驻型的公共网关接口。
–without-http_uwsgi_mole 禁用ngx_http_uwsgi_mole支持(该模块用来医用uwsgi协议,uWSGI服务器相关)
–without-http_scgi_mole 禁用ngx_http_scgi_mole支持(该模块用来启用SCGI协议支持,SCGI协议是CGI协议的替代。它是一种应用程序与HTTP服务接口标准。它有些像FastCGI但他的设计 更容易实现。)
–without-http_memcached_mole 禁用ngx_http_memcached_mole支持(该模块用来提供简单的缓存,以提高系统效率)
-without-http_limit_zone_mole 禁用ngx_http_limit_zone_mole支持(该模块可以针对条件,进行会话的并发连接数控制)
–without-http_limit_req_mole 禁用ngx_http_limit_req_mole支持(该模块允许你对于一个地址进行请求数量的限制用一个给定的session或一个特定的事件)
–without-http_empty_gif_mole 禁用ngx_http_empty_gif_mole支持(该模块在内存中常驻了一个1*1的透明GIF图像,可以被非常快速的调用)
–without-http_browser_mole 禁用ngx_http_browser_mole支持(该模块用来创建依赖于请求报头的值。如果浏览器为modern ,则$modern_browser等于modern_browser_value指令分配的值;如 果浏览器为old,则$ancient_browser等于 ancient_browser_value指令分配的值;如果浏览器为 MSIE中的任意版本,则 $msie等于1)
–without-http_upstream_ip_hash_mole 禁用ngx_http_upstream_ip_hash_mole支持(该模块用于简单的负载均衡)
–with-http_perl_mole 启用ngx_http_perl_mole支持(该模块使nginx可以直接使用perl或通过ssi调用perl)
–with-perl_moles_path= 设定perl模块路径
–with-perl= 设定perl库文件路径
–http-log-path= 设定access log路径
–http-client-body-temp-path= 设定http客户端请求临时文件路径
–http-proxy-temp-path= 设定http代理临时文件路径
–http-fastcgi-temp-path= 设定http fastcgi临时文件路径
–http-uwsgi-temp-path= 设定http uwsgi临时文件路径
–http-scgi-temp-path= 设定http scgi临时文件路径
-without-http 禁用http server功能
–without-http-cache 禁用http cache功能
–with-mail 启用POP3/IMAP4/SMTP代理模块支持
–with-mail_ssl_mole 启用ngx_mail_ssl_mole支持
–without-mail_pop3_mole 禁用pop3协议(POP3即邮局协议的第3个版本,它是规定个人计算机如何连接到互联网上的邮件服务器进行收发邮件的协议。是因特网电子邮件的第一个离线协议标 准,POP3协议允许用户从服务器上把邮件存储到本地主机上,同时根据客户端的操作删除或保存在邮件服务器上的邮件。POP3协议是TCP/IP协议族中的一员,主要用于 支持使用客户端远程管理在服务器上的电子邮件)
–without-mail_imap_mole 禁用imap协议(一种邮件获取协议。它的主要作用是邮件客户端可以通过这种协议从邮件服务器上获取邮件的信息,下载邮件等。IMAP协议运行在TCP/IP协议之上, 使用的端口是143。它与POP3协议的主要区别是用户可以不用把所有的邮件全部下载,可以通过客户端直接对服务器上的邮件进行操作。)
–without-mail_smtp_mole 禁用smtp协议(SMTP即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地。)
–with-google_perftools_mole 启用ngx_google_perftools_mole支持(调试用,剖析程序性能瓶颈)
–with-cpp_test_mole 启用ngx_cpp_test_mole支持
–add-mole= 启用外部模块支持
–with-cc= 指向C编译器路径
–with-cpp= 指向C预处理路径
–with-cc-opt= 设置C编译器参数(PCRE库,需要指定–with-cc-opt=”-I /usr/local/include”,如果使用select()函数则需要同时增加文件描述符数量,可以通过–with-cc- opt=”-D FD_SETSIZE=2048”指定。)
–with-ld-opt= 设置连接文件参数。(PCRE库,需要指定–with-ld-opt=”-L /usr/local/lib”。)
–with-cpu-opt= 指定编译的CPU,可用的值为: pentium, pentiumpro, pentium3, pentium4, athlon, opteron, amd64, sparc32, sparc64, ppc64
–without-pcre 禁用pcre库
–with-pcre 启用pcre库
–with-pcre= 指向pcre库文件目录
–with-pcre-opt= 在编译时为pcre库设置附加参数
–with-md5= 指向md5库文件目录(消息摘要算法第五版,用以提供消息的完整性保护)
–with-md5-opt= 在编译时为md5库设置附加参数
–with-md5-asm 使用md5汇编源
–with-sha1= 指向sha1库目录(数字签名算法,主要用于数字签名)
–with-sha1-opt= 在编译时为sha1库设置附加参数
–with-sha1-asm 使用sha1汇编源
–with-zlib= 指向zlib库目录
–with-zlib-opt= 在编译时为zlib设置附加参数
–with-zlib-asm= 为指定的CPU使用zlib汇编源进行优化,CPU类型为pentium, pentiumpro
–with-libatomic 为原子内存的更新操作的实现提供一个架构
–with-libatomic= 指向libatomic_ops安装目录
–with-openssl= 指向openssl安装目录
–with-openssl-opt 在编译时为openssl设置附加参数
–with-debug 启用debug日志
④ 在Linux+Apache/2.2.8+Perl/v5.8.8下安装mod_perl-2.0.5
这个不是让你用什么版本的perl,而是说你的Perl不支持线程,如果你是自己编译安装的perl则需要在编译的时候加入参数-Dusethreads开启线程支持
⑤ 求一个免费的可以在线编译的c++学习网站,尽量适合零基础入门的人
十个最好有的在线编译/调试工具。
1、ideone
可以在线编译盒调试C/C++,JAVA,PHP,Python,Perl,以及其他40多种编程语言....
http://www.codeceo.com/article/top-10-online-compiler.html
⑥ ASP是什么和VBScript,JavaScript什么关系
很巧啊,最近我也在学习网络编程,我先学了两周的ASP编程,.NET现在是,然后开始学习JSP,因为JSP要强大一些,他们的主要区别和特点如下。
ASP是Active Server Page的缩写,意为“动态服务器页面”。ASP是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和其它程序进行交互,是一种简单、方便的编程工具。ASP的网页文件的格式是.asp,现在常用于各种动态网站中。 ASP是一种服务器端脚本编写环境,可以用来创建和运行动态网页或Web应用程序。ASP网页可以包含HTML标记、普通文本、脚本命令以及COM组件等。利用ASP可以向网页中添加交互式内容(如在线表单),也可以创建使用HTML网页作为用户界面的web应用程序。 与HTML相比,ASP网页具有以下特点:
(1)利用ASP可以实现突破静态网页的一些功能限制,实现动态网页技术;
(2)ASP文件是包含在HTML代码所组成的文件中的,易于修改和测试;
(3)服务器上的ASP解释程序会在服务器端制定ASP程序,并将结果以HTML格式传送到客户端浏览器上,因此使用各种浏览器都可以正常浏览ASP所产生的网页;
(4)ASP提供了一些内置对象,使用这些对象可以使服务器端脚本功能更强。例如可以从web浏览器中获取用户通过HTML表单提交的信息,并在脚本中对这些信息进行处理,然后向web浏览器发送信息;
(5)ASP可以使用服务器端ActiveX组件来执行各种各样的任务,例如存取数据库、发现和那个Email或访问文件系统等。
(6)由于服务器是将ASP程序执行的结果以HTML格式传回客户端浏览器,因此使用者不会看到ASP所编写的原始程序代码,可防止ASP程序代码被窃取
JSP(JavaServer Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。
用JSP开发的Web应用是跨平台的,即能在Linux下运行,也能在其他操作系统上运行。
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
JSP与Java Servlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
JSP的1.0规范的最后版本是1999年9月推出的,12月又推出了1.1规范。目前较新的是JSP1.2规范,JSP2.0规范的征求意见稿也已出台。
JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet 是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。
自JSP推出后,众多大公司都支持JSP技术的服务器,如IBM、Oracle、Bea公司等,所以JSP迅速成为商业应用的服务器端语言。
PHP,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypertext Preprocessor)的缩写。PHP 是一种HTML内嵌式的语言,PHP与微软的ASP颇有几分相似,都是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,现在被很多的网站编程人员广泛的运用。PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。它可以比 CGI 或者 Perl 更快速的执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;与同样是嵌入HTML文档的脚本语言JavaScript相比,PHP在服务器端执行,充分利用了服务器的性能;PHP执行引擎还会将用户经常访问的PHP程序驻留在内存中,其他用户在一次访问这个程序时就不需要重新编译程序了,只要直接执行内存中的代码就可以了,这也是PHP高效率的体现之一。PHP具有非常强大的功能,所有的CGI或者JavaScript的功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统。
PHP 最初是1994年Rasmus Lerdorf创建的,刚刚开始只是一个简单的用Perl语言编写的程序,用来统计他自己网站的访问者。后来又用C语言重新编写,包括可以访问数据库。在 1995年以Personal Home Page Tools (PHP Tools) 开始对外发表第一个版本,Lerdorf写了一些介绍此程序的文档,并且发布了PHP1.0。在这早期的版本中,提供了访客留言本、访客计数器等简单的功能。以后越来越多的网站使用了PHP,并且强烈要且增加一些特性,比如循环语句和数组变量等等,在新的成员加入开发行列之后,在1995年中,PHP2.0发布了。第二版定名为PHP/FI(Form Interpreter)。PHP/FI加入了对mSQL的支持,从此建立了PHP在动态网页开发上的地位。到了1996年底,有15000个网站使用 PHP/FI;时间到了1997年中,使用PHP/FI的网站数字超过五万个。而在1997年中,开始了第三版的开发计划,开发小组加入了 Zeev Suraski 及 Andi Gutmans,而第三版就定名为PHP3。2000年,PHP4.0又问世了,其中增加了许多新的特性。
PHP的特性包括以下几点:
开放的源代码:所有的PHP源代码事实上都可以得到。
PHP是免费的。
基于服务器端:由于PHP是运行在服务器端的脚本,可以运行在UNIX、LINUX、WINDOWS下。
嵌入HTML:因为PHP可以嵌入HTML语言,所以学习起来并不困难。
简单的语言:PHP坚持脚本语言为主,与Java以C++不同。
效率高:PHP消耗相当少的系统资源。
图像处理:用PHP动态创建图像
PHP由于是免费的,所以虽然不入其他两个好,但是也很受欢迎,毕竟人家是免费的!你要学习的话我建议你先学习HTML语言,一天或者两天就ok了,然后学ASP,毕竟是微软支持的,用的很多现在,当然最强大的还是JSP,所以也必须学点JSP,现在很多公司都在大力开发JSP,他的功能真的很强大!
希望你尽快掌握网络编程,学习是快乐的!!
⑦ perl中的pl格式文件如何转换成exe
windows系统需要安装ActivePerl for Windows 5.0
Linx直接就可以用了
安装完之后 运行-〉CMD perl %path%\*.pl就可以了(%PATH%指你存放文件的路径)
或者安装KOMODO IDE可以编译perl程序 或者DzSoft perl 这个免费小巧 也可以运行perl程序。
⑧ Python有哪些技术上的优点比其他语言好在哪儿
Python有哪些技术上的优点
1. 面向对象和函数式
从根本上讲,Python是一种面向对象的语言。它的类模型支持多态、运算符重载和多重继承等高级概念,并且以Python特有的简洁的语法和类型为背景,OOP十分易于使用。事实上,即使你不懂这些术语,仍会发现学习Python比学习其他OOP语言要容易得多。
除了作为一种强大的代码组织和重用手段以外,Python的OOP本质使它成为其他面向对象系统语言的理想脚本工具。例如,通过适当的粘接代码,Python程序可以对C++、Java和C#的类进行子类的定制。
OOP只是Python的一个选择而已,这一点非常重要。即使不能立马成为一个面向对象高手,但你同样可以继续深入学习。就像C++一样,Python既支持面向对象编程也支持面向过程编程的模式。如果条件允许,其面向对象的工具可以立即派上用场。这对策略开发模式十分有用,该模式常用于软件开发的设计阶段。
除了最初的过程式(语句为基础)和面向对象(类为基础)的编程范式,Python在最近几年内置了对函数式编程的支持——一个多数情况下包括生成器、推导、闭包、映射、装饰器、匿名lambda函数和第一类函数对象的集合。这是对其本身OOP工具的补充和替代。
2. 免费
Python的使用和分发是完全免费的。就像其他的开源软件一样,例如,Tcl、Perl、Linux和Apache。你可以从Internet上免费获得Python的源代码。你可以不受限制地复制Python,或将其嵌入你的系统或者随产品一起发布。实际上,如果你愿意的话,甚至可以销售它的源代码。
但请别误会:“免费”并不代表“没有支持”。恰恰相反,Python的在线社区对用户需求的响应和商业软件一样快。而且,由于Python完全开放源代码,提高了开发者的实力,并产生了一个很大的专家团队。
尽管研究或改变一种程序语言的实现并不是对每一个人来说都那么有趣,但是当你知道如果需要的话可以做到这些,该是多么的令人欣慰。你不需要去依赖商业厂商的智慧,因为最终的文档和终极的净土(源码)任凭你的使用。
Python的开发是由社区驱动的,是Internet大范围的协同合作努力的结果。Python语言的改变必须遵循一套规范而有约束力的程序(称作PEP流程),并需要经过规范的测试系统进行彻底检查。正是这样才使得Python相对于其他语言和系统可以保守地持续改进。
尽管Python 2.X和Python 3.X版本之间的分裂有力并蓄意地破坏了这项传统,但通常它仍然体现在Python的这两个系列内部。
⑨ perl编程找不到包模块。
关于@INC的注意事项
当你use 一个模块的时候,就会指示perl去搜索@INC数组中是否有此模块名。
你可以像下面这样print @INC包含的路径:
perl -e 'print "$_\n" for @INC'
你可以向@INC中添加自定义目录。像下面这样:
BEGIN { push @INC, '/my/dir' }
# or
BEGIN { unshift @INC, '/my/dir' }
# or
use lib '/my/dir';
我们需要使用BEGIN块在编译时向@INC中添加值,此时是perl检查模块的时刻。
如果你等到程序被编译的时候就晚了,perl会会提示一个异常,
“在@INC中无法找到XXX”.
Can't locate XXX in @INC
⑩ error:创建到服务器 (9903) 的连接失败
游戏服务器注意事项
一、硬件的安装
1、保证服务器风扇正常转动。
2、保证服务器各个提示灯是否正常。
3、开机察看服务器有无报警情况。
4、开机察看服务器能否正常启动(不插鼠标键盘的情况下)
二、系统的安装
安装RHEL 4.1
选择自动分区。
分别给2块网卡配置ip,方便以后配置,其中eth0配内网ip,eth1配外网ip。
不启用防火墙。
增加中文语言包。
选择软件包时,只选择开发包.
三、系统的简单设置
1、防火墙的简单设置:
vi /etc/rc.d/forward
内容:(例子)
#!/bin/bash
echo 1 >/proc/sys/net/ipv4/ip_forward
if [ -e /proc/sys/net/ipv4/tcp_ecn ]
then
echo 0 > /proc/sys/net/ipv4/tcp_ecn
fi
/sbin/iptables -F
/sbin/iptables -F -t nat
/sbin/depmod -a
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -j ACCEPT
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#/sbin/iptables -A INPUT -i eth0 -p tcp -j REJECT --reject-with tcp-reset
/sbin/iptables -A INPUT -i eth0 -p udp -j REJECT --reject-with icmp-port-unreachable
#sshd
/sbin/iptables -A INPUT -s 218.80.198.234 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
/sbin/iptables -A INPUT -s 218.80.198.250 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
/sbin/iptables -A INPUT -s 210.22.188.21 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
#ftp server
#/sbin/iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
#game server
/sbin/iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 6020 -j ACCEPT
#db server
/sbin/iptables -t nat -A PREROUTING -s 218.80.198.234 -d 203.110.165.30 -p tcp --dport 3306 -j DNAT --to 192.168.102.158:3306
/sbin/iptables -t nat -A PREROUTING -s 218.80.198.234 -d 203.110.165.30 -p tcp --dport 3307 -j DNAT --to 192.168.102.159:3306
/sbin/iptables -P INPUT DROP
/sbin/iptables -t nat -A POSTROUTING -o eth1 -s 192.168.102.0/24 -j MASQUERADE
保存后退出。
chmod 744 /etc/rc.d/forward
然后运行防火墙脚本,以后根据需求修改脚本。
再vi /etc/rc.d/only_forward
#!/bin/bash
echo 1 >/proc/sys/net/ipv4/ip_forward
if [ -e /proc/sys/net/ipv4/tcp_ecn ]
then
echo 0 > /proc/sys/net/ipv4/tcp_ecn
fi
/sbin/iptables -F
/sbin/iptables -F -t nat
/sbin/depmod -a
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -j ACCEPT
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#/sbin/iptables -A INPUT -i eth0 -p tcp -j REJECT --reject-with tcp-reset
/sbin/iptables -A INPUT -i eth0 -p udp -j REJECT --reject-with icmp-port-unreachable
#sshd
/sbin/iptables -A INPUT -s 218.80.198.234 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
/sbin/iptables -A INPUT -s 218.80.198.250 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
/sbin/iptables -A INPUT -s 210.22.188.21 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
#ftp server
#/sbin/iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
#game server
/sbin/iptables -A INPUT -s 218.80.198.234 -p tcp -m state --state NEW -m tcp --dport 6020 -j ACCEPT
#db server
/sbin/iptables -t nat -A PREROUTING -s 218.80.198.234 -d 203.110.165.30 -p tcp --dport 3306 -j DNAT --to 192.168.102.158
/sbin/iptables -t nat -A PREROUTING -s 218.80.198.234 -d 203.110.165.30 -p tcp --dport 3307 -j DNAT --to 192.168.102.159:3306
/sbin/iptables -P INPUT DROP
/sbin/iptables -t nat -A POSTROUTING -o eth1 -s 192.168.102.0/24 -j MASQUERADE
此防火墙只允许公司的电脑可以登录游戏。
2、设置系统自动启动防火墙
vi /etc/rc.d/rc.local
增加一行
/etc/rc.d/forward
保存后退出
3、设置文件打开数
1) 修改/etc/security/limits.conf 增加2行:
* soft nofile 4096
* hard nofile 65535
2) 修改/etc/pam.d/login 增加1行
session required pam_limits.so
可用:
echo “* soft nofile 4096” >>/etc/security/limits.conf
echo “* hard nofile 65535” >>/etc/security/limits.conf
echo “session required pam_limits.so” >>/etc/pam.d/login
4、修改默认语言
vi /etc/sysconfig/i18n 修改
LANG="zh_CN.GB2312"
新建游戏运行用户ztgame,设置密码
useradd ztgame
passwd ztgame
用ztgame用户登录服务器,修改vi /home/ztgame/.bash_profile增加一行
ulimit –c unlimited
保存后退出。
四、游戏环境的搭建(按照4台网关服务器,5台场景服务器,1台数据库服务器的构架)
1、服务器IP设置
4台网关服务器配置外网ip和内网ip,5台场景服务器和数据库服务器只配置内网ip,并且服务器默认网关为第一台网关服务器的内网ip。
服务器以服务器应用-序号-机房序号命名(例GWServer01-CHJ01)。
修改/etc/hosts。
例子:
127.0.0.1 GWServer01-CHJ01 localhost.localdomain localhost
192.168.100.101 GWServer02-CHJ01
………
192.168.100.104 ScenServer01-CHJ01
………
192.168.100.109 DBServer-CHJ01
2、公钥的生成
在ztgame的用户下登陆第一台网关服务器,输入ssh-keygen -t dsa
接受 ~/.ssh/id_dsa 的默认位置。输入一个与你的帐号口令不同的口令句,再输入一次来确认。公钥被写入 ~/.ssh/id_dsa.pub。密钥被写入 ~/.ssh/id_dsa。
使用以下命令改变你的 .ssh 目录的许可权限:
chmod 755 ~/.ssh
把 ~/.ssh/id_dsa.pub用scp命令传到其它剩余9台服务器
scp~/.ssh/id_dsa.pub [email protected]:~/.ssh/authorized_keys
在其它9台服务器下使用以下命令改变你的 authorized_keys 文件的许可权限:
chmod 755 ~/.ssh
chmod 644 ~/.ssh/authorized_keys
3、数据库服务器的安装
#首先确定你是root用户
#确定你有以下包
perl-DBD-MySQL-2.9004-3.1
perl-DBI-1.40-5
mysql-4.1.7-4.RHEL4.1
获得mysql-4.1.*.tar包,用tar –zxvf mysql-4.1.*tar解开压缩包,然后进入mysql-4.1.*目录
#根据体统类型选择编译方式
#i386体系结构的
CFLAGS="-O3 -mcpu=pentiumpro" CXX=gcc CXXFLAGS="-O3 -mcpu=pentiumpro -felide-constructors -fno-exceptions -fno-rtti" ./configure --with-raid --enable-thread-safe-client --enable-assembler --with-server-suffix =" for >>>MySQL Database of Zebra by Yhc<<<" --without-debug --with-extra-charsets=none --without-isam --disable-shared --with-mysqld-ldflags=-all-static --prefix=/usr/local/mysql --without-bench
#64位系统,x86_64
CFLAGS="-O3 -m64" CXX=gcc CXXFLAGS="-O3 -m64 -felide-constructors -fno-exceptions -fno-rtti" ./configure --with-raid --enable-thread-safe-client --enable-assembler --with-server-suffix =" for >>>MySQL Database of Zebra by Yhc<<<" --without-debug --with-extra-charsets=none --without-isam --disable-shared --with-mysqld-ldflags=-all-static --prefix=/usr/local/mysql --without-bench
#然后根据CPU数量进行编译
make -j 2 && make install
#添加用户
groupadd mysql && useradd -g mysql mysql
#创建目录
mkdir /usr/local/mysql/data && mkdir /usr/local/mysql/run && mkdir /usr/local/mysql/log && mkdir /usr/local/mysql/var
#更改mysql目录所有者
chgrp mysql -R /usr/local/mysql && chown mysql -R /usr/local/mysql
#增加打开文件数量
ulimit -n 4096
#添加PATH
echo "PATH=\"/usr/local/mysql/bin:\$PATH\"" >> /etc/profile && export PATH="/usr/local/mysql/bin:$PATH"
#strip可执行文件
strip /usr/local/mysql/libexec/mysqld
#添加LIB PATH
echo "/usr/local/mysql/lib" >> /etc/ld.so.conf && ldconfig
#将my.cnf文件cp到/etc目录下
cp support-files/my-huge.cnf /etc/my.cnf
#修改my.cnf
datadir=/db/mysql
#创建数据库存放路径
mkdir /db
chown mysql.mysql /db -R
#初始化Mysql表
su - mysql -c "mysql_install_db"
#启动服务器
su - mysql -c "mysqld_safe --skip-name-resolve --open-files-limit=4096&"
#创建数据库和用户
GRANT ALL PRIVILEGES ON *.* TO [email protected].% IDENTIFIED BY WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO ztgame@localhost IDENTIFIED BY WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO [email protected] IDENTIFIED BY WITH GRANT OPTION;
4、数据库配置
用mysql进入,然后用create database dbname创建数据库。分别创建SuperServer、RecordServer、Bill数据库,然后用安装包目录下的*.sql的文件建立相应的表。(SessionServer.sql也导入到RecordServer库中)。
在SuperServer数据库SERVERLIST表内添加服务器配置信息。
例子:
INSERT INTO `SERVERLIST` VALUES (1,1,SuperServer,192.168.104.109,10000,192.168.104.109,10000);
INSERT INTO `SERVERLIST` VALUES(20,20,SessionServer,192.168.104.109,6000,192.168.104.109,6000);
INSERT INTO `SERVERLIST` VALUES(21,21,SceneServer,192.168.104.104,6010,192.168.104.104,6010);
INSERT INTO `SERVERLIST` VALUES(22,21,SceneServer,192.168.104.105,6011,192.168.104.105,6011);
INSERT INTO `SERVERLIST` VALUES(23,21,SceneServer,192.168.104.106,6012,192.168.104.106,6012);
INSERT INTO `SERVERLIST` VALUES(24,21,SceneServer,192.168.104.107,6013,192.168.104.107,6013);
INSERT INTO `SERVERLIST` VALUES(25,21,SceneServer,192.168.104.108,6014,192.168.104.108,6014);
INSERT INTO `SERVERLIST` VALUES(2200,22,GatewayServer,192.168.104.100,6020,210.51.23.132,6020);
INSERT INTO `SERVERLIST` VALUES(2201,22,GatewayServer,192.168.104.101,6020,210.51.23.133,6020);
INSERT INTO `SERVERLIST` VALUES(2202,22,GatewayServer,192.168.104.102,6020,210.51.23.134,6020);
INSERT INTO `SERVERLIST` VALUES(2203,22,GatewayServer,192.168.104.103,6020,210.51.23.135,6020);
INSERT INTO `SERVERLIST` VALUES(11,11,RecordServer,192.168.104.109,7010,192.168.104.109,7010);
INSERT INTO `SERVERLIST` VALUES(12,12,BillServer,192.168.104.109,7020,192.168.104.109,7020);
在RecordServer数据库上初始化某些表格,目前有ANSWER,TECH,COUNTRY,NPCDARE,ACCPRIV。
数据库服务器上跑SuperServer、SessionServer、RecordServer、BillServer四个服务,4个网关服务器分别跑4个网关服务,5个场景服务器分别跑5个场景服务。场景服务器对应的ID就是国家配置的ID号,这个ID号决定场景服务器上面跑几个国家。
五、服务端的配置和安装
1、获得安装包:
release-version.tar.bz2
map-version.tar.bz2
在/home/ztgame下建立以时间为名字的目录(game20050928),压缩包放入此目录,然后用tar –jxvf release-version.tar.bz2 和tar –jxvf map-version.tar.bz2解开压缩包
进入release目录,cp –rf ../map .
按照config.xml.example格式创建文件config.xml
配置文件主要定义了服务器的各种参数:
[global]这段主要定义了通用参数,如服务器本地网络设备名称,扩展网络设备名称,日志级别,SuperServer的服务器地址,端口等参数。
其他各个段定义了具体的服务参数,主要是指定该服务对应的数据库,数据库的连接地址,端口,用户名,密码等数据库连接字符串。每个服务可以定义日志文件的存放位置,如果没有指定,缺省放置在/tmp/目录下面。
如SuperServer服务
<SuperServer>
<!--MySQL database connection[mysql://user:passwd@host:port/dbName]-->
<mysql>mysql://test:[email protected]:3306/SuperServer</mysql>
<logfilename>/home/test/tmp/superserver.log</logfilename>
</SuperServer>
上面配置指明SuperServer服务,采用连接串用户名test,密码123456,访问192.168.2.14服务器上3306端口下SuperServer数据库,日志文件存放在/home/test目录下。其他服务配置类似。
例子:
<?xml version="1.0" encoding="GB2312"?>
<!--所有各种服务器参数-->
<Zebra>
<global>
<!-- Specify the log level[debug,info,warning,error,fatal,always]. -->
<log>debug</log>
<!--MySQL database connection[mysql://user:passwd@host:port/dbName]-->
<!-- Use the specified local network device. -->
<ifname>eth0</ifname>
<!-- Connected to the specified supserserver, property port default value is 10000. -->
<superserver port="10000">192.168.104.109</superserver>
</global>
<SuperServer>
<!-- 统一用户平台登陆服务器列表文件 -->
<loginServerListFile>loginServerList.xml</loginServerListFile>
<!-- 角色名称唯一性验证服务器的地址 -->
<RoleregServer port="9901">218.80.198.252</RoleregServer>
<!-- 服务器信息采集的服务器地址 -->
<InfoServer port="9903">218.80.198.252</InfoServer>
<!--MySQL database connection[mysql://user:passwd@host:port/dbName]-->
<mysql>mysql://ztgame:[email protected]:3306/SuperServer</mysql>
<!-- 如果要编码mysql连接字符串请使用工具,配置如下面的例子
<mysql encode="yes">lmOf.
</mysql>-->
<logfilename>/log/superserver.log</logfilename>
</SuperServer>
<RecordServer>
<!--MySQL database connection[mysql://user:passwd@host:port/dbName]-->
<mysql>mysql://ztgame:[email protected]:3306/RecordServer</mysql>
<logfilename>/log/recordserver.log</logfilename>
</RecordServer>
<BillServer>
<!--MySQL database connection[mysql://user:passwd@host:port/dbName]-->
<mysql>mysql://ztgame:[email protected]:3306/Bill</mysql>
<logfilename>/log/billserver.log</logfilename>
</BillServer>
<BillClient>
<!-- 交易记录log文件路径 -->
<tradelogfilename>/log/clienttrade.log</tradelogfilename>
</BillClient>
<SessionServer>
<!--MySQL database connection[mysql://user:passwd@host:port/dbName]-->
<mysql>mysql://ztgame:[email protected]:3306/RecordServer</mysql>
<logfilename>/log/sessionserver.log</logfilename>
<dare_active_time>3600</dare_active_time>
<offlineMsgPath>/log/offlineMessages</offlineMsgPath>
</SessionServer>
<ScenesServer>
<sceneinfofile>scenesinfo.xml</sceneinfofile>
<npctradefile>npctrade.xml</npctradefile>
<messageSystemFile>messageSystem.xml</messageSystemFile>
<charinitinfoFile>initcharinfo.xml</charinitinfoFile>
<magicrangeFile>magicrangefile.xml</magicrangeFile>
<questdir>quest/</questdir>
<mapdir>map/</mapdir>
<tbldir>map/</tbldir>
<gm_logfile>/log/gm_log.log</gm_logfile>
<!--回写档案平率(单位是秒) -->
<writebacktimer>300</writebacktimer>
<ossdir>/log/</ossdir>
<logfilename>/log/scenesserver.log</logfilename>
</ScenesServer>
<GatewayServer>
<!-- 国家排序方式 0:不排序 , 1:在线人数排序 , 2:注册人数排序 -->
<countryorder>2</countryorder>
<logfilename>/log/gatewayserver.log</logfilename>
<sceneinfofile>scenesinfo.xml</sceneinfofile>
<rolereg_verify>1</rolereg_verify>
<forbidWordsFile>forbidWords</forbidWordsFile>
</GatewayServer>
</Zebra>
注意存放日至的目录是否建立,以及建立session服务所要求的日志存放子目录offlineMessages。
修改loginServerList.xml,填入平台中心的FLServer服务器ip以及端口。
例子:
<?xml version="1.0" encoding="GB2312"?>
<LoginServerList>
<server ip="218.80.198.252" port="7001"/>
<server ip="210.22.188.20" port="7001"/>
</LoginServerList>
然后将修改好的版本传至其它9台服务器。并启动服务
六、服务器的启动,停止和更新
1、将运行脚本传至各个服务器。
2、开启游戏服务
通过ssh使用ztgame用户远程连接至第一台网关服务器,再通过网关服务器连接其他9台服务器,
10个窗口内分别进入最新的服务端存放目录/home/ztgame/game200508**/release/
数据库服务器 启动服务./SuperServer -d 和 ./SessionServer -d 和 ./RecordServer -d 和 ./BillServer -d
场景服务器 启动服务./ScenesServer -d
网关服务器 启动服务./GatewayServer -d
以上操作可以通过/home/ztgame/tools/allstart game200508**来启动(由于程序是后台运行,所以如发现程序运行时间过长,可以CTRL+c中断,并不影响程序的正常运行。)
3、停止游戏服务
通过ssh使用ztgame用户远程连接至第一台网关服务器,运行/home/ztgame/tools/allstop,中止所有服务
,此脚本是并不是强行杀进程,所以如果发现进程无法kill的情况,用/home/ztgame/tools/allstop_9来强行杀死进程。
4、查看游戏服务
通过ssh使用ztgame用户远程连接至第一台网关服务器,运行/home/ztgame/tools/allview,查看所有服务运行状态。
5、更新游戏服务
通过ssh使用ztgame用户远程连接至第一台网关服务器,再通过服务器连接其他9台服务器,
分别在/home/ztgame目录下面建立最新的服务端存放目录game200508**.
然后将服务器端安装包通过scp传到第一台网关服务器,在game200508**下解压。
tar jxvf zebra-release-*****
tar jxvf zebra-release-*****
cp map release/ -rf
然后从上一个版本里拷贝出一些配置文件覆盖源文件
cp /home/ztgame/game_old/release/config.xml /home/ztgame/game_new/release/
cp /home/ztgame/game_old/release/loginServerList.xml /home/ztgame/game_new/release/
cp /home/ztgame/game_old/release/messageSystem.xml /home/ztgame/game_new/release/
以上工作准备好后就可以将网关服务器上的版本传到其他服务器
scp -r /home/ztgame/game_new/* [email protected]:/home/ztgame/game_new
以上操作可以通过shell脚本来实现
/home/ztgame/tools/installPackage game_new game-old
七、服务器数据的备份
1、数据备份
为了防止意外情况的发生造成数据的丢失,关键数据或整个系统或对有选择的系统部分,在本地和异地进行定时备份,以保证系统全部或部分在灾害出现时也能持续运行。
2、具体方案
1)、数据库每日备份
每天4:00,将RecordServer数据库拷贝至/root/back后进行压缩,然后上传至192.168.1.9服务器上,/root/back留有压缩版本。
运行脚本/root/scripts/back.sh
例子:
#!/bin/bash
rm /root/back/RecordServer/* -rf
/usr/local/mysql/bin/mysqlhot RecordServer /root/back/RecordServer -u ztgame -p yS29wahvCH
sleep 5
cd /root/back
tar zcf `hostname`-RecordServer`date +%Y%m%d`.tar.gz RecordServer
sleep 5
echo "tar ok!"
/usr/local/bin/ncftpput -u gamebak -p gamebak@ztgame 218.80.198.234 / /root/back/`hostname`-RecordServer`date +%Y%m%d`.tar.gz
sleep 20
echo "upload RecordServer ok!"
2)、数据库即时备份
每隔1小时,将RecordServer数据库拷贝至/root/back/hour目录进行备份,然后将压缩文件传给特定服务器。
例子:
#!/bin/bash
hottime=`date +%Y%m%d%H%M`
mkdir /root/back/hour/RecordServer"$hottime"
/usr/local/mysql/bin/mysqlhot RecordServer /root/back/hour/RecordServer"$hottime" -u ztgame -p yS29wahvCH
sleep 5
cd /root/back/hour
tar zcf `hostname`-RecordServer"$hottime".tar.gz RecordServer"$hottime"
sleep 5
echo "tar ok!"
/usr/local/bin/ncftpput -u backupdb -p backupdb 192.168.102.119 / /root/back/hour/`hostname`-RecordServer"$hottime".tar.gz
sleep 20
echo "upload RecordServer ok!"
rm `hostname`-RecordServer"$hottime".tar.gz -f
3)、日志备份
每天02:00,将/log/下前一天的日志,进行压缩,然后上传至192.168.1.9服务器。
运行脚本/root/scripts//upload_daily
例子:
#!/bin/bash
cd /log/
mkdir log`date --date 1 days ago +%Y%m%d`
mv *.log.`date --date 1 days ago +%y%m%d`-* log`date --date 1 days ago +%Y%m%d`
sleep 10
tar zcvf `hostname`-log`date --date 1 days ago +%Y%m%d`.tar.gz log`date --date 1 days ago +%Y%m%d`
/usr/local/bin/ncftpput -u log -p log@ztgame 218.80.198.234 / /log/`hostname`-log`date --date 1 days ago +%Y%m%d`.tar.gz
rm `hostname`-log`date --date 1 days ago +%Y%m%d`.tar.gz
注:计划任务通过/etc/crontab –e来进行设置
4)、即时日志备份
直接运行/home/ztgame/tools/upload 将最新日志上传至192.168.1.9服务器,方便研发部门查看。
运行脚本/home/ztgame/tools/upload,(