首页 文章 精选 留言 我的

精选列表

搜索[环境],共10000篇文章
优秀的个人博客,低调大师

eclipse上Android NDK开发环境搭建

首先要有已集成好Android adt插件的eclipse,如果没有,到http://developer.android.com/sdk/index.html下载已集成ADT的eclipse。 下载Android NDK包http://developer.android.com/tools/sdk/ndk/index.html并解压。 打开eclipse,点击菜单栏 Windows ---> Preferences---> Android ---> NDK 找到上一步解压的NDK,点击OK 保存。 新建一个Android项目ndktest,并在工程下新建jni文件夹。 在编写native函数,例在com.example.ndktest下创建类 myjni。 运行cmd,定位到ndktest根目录下,运行命令javah -classpath bin\classes -d jni com.example.ndktest.myjni 会在jni文件下生成一个h头文件。 如果点开有报错,可以忽略它,可能因为找不到jni.h这个头文件,先不管。 在jni文件夹下编写com_example_ndktest_myjni.c文件实现方法getSum。 在jni文件夹下编写android.mk文件 在package Explorer 里,右键工程 ----> Properties 选择Program ---> OKOK 保存。 libmyjni.so 动态库已生成libs\armeabi文件夹下。 后面附上HTK中工具HCopy的Android 动态库工程的源码,下载导入工程后,确保已经安装好NDK,并修改第9步,第二图中的NDK_Builder的location到你的NDK包下的cmd即可。 上述例子工程源码:http://down.51cto.com/data/1499353 HCopy动态库工程源码:http://down.51cto.com/data/1499346 本文转自 ponpon_ 51CTO博客,原文链接:http://blog.51cto.com/liuxp0827/1438625,如需转载请自行联系原作者

优秀的个人博客,低调大师

Linux环境查看Tomcat服务的方法

1、查看Tomcat进程 执行命令$ps -ef|grep tomcat 你就能找出tomcat占据的进程号,要求tomcat启动了。 [root@AY140504164420124ca4Z ~]# ps -ef | grep tomcat root 25208 23361 0 16:06 pts/0 00:00:00 grep tomcat 2、命令$netstat -nat,查看Tomcat启动的端口,要求tomcat启动了,留意8080端口和其他常用端口 [root@AY140504164420124ca4Z ~]# netstat -nat Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 218.244.145.86:34543 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN tcp 0 0 10.165.3.160:22 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:6082 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:199 0.0.0.0:* LISTEN tcp 0 0 10.165.3.160:46125 10.161.134.135:4505 ESTABLISHED tcp 0 836 218.244.145.86:34543 210.21.213.194:6721 ESTABLISHED tcp 0 0 10.165.3.160:49621 10.161.134.135:4506 ESTABLISHED 3、命令find / -name tomcat ,查看tomcat目录 [root@AY140504164420124ca4Z ~]# find / -name tomcat [root@AY140504164420124ca4Z ~]# 显然,我的系统还没有Tomcat

优秀的个人博客,低调大师

python环境下,执行系统命令方法

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 方法 1 :os.system >>> import os >>>os.system( 'ls' ) anaconda - ks.cfgDjango - 1.2 . 7 install.log.syslogptyprocess - 0.5 . 1 server1.py公共的文档 a.pydockermysitepycharm - 2016.3 . 2 server.py模板下载 client1.pydocker - 1.7 . 1 paramiko - 2.1 . 1 pycharm - license.txtsetuptools - 2.0 视频音乐 client.pyinstall.logpexpect - 4.2 . 1 pycrypto - 2.6 . 1 spawn - 0.1 图片桌面 0 >>> 方法 2 :os.popen >>> import os >>>tmp = os.popen( 'ls' ) >>>tmp.readlines() anaconda - ks.cfgDjango - 1.2 . 7 install.log.syslogptyprocess - 0.5 . 1 server1.py公共的文档 a.pydockermysitepycharm - 2016.3 . 2 server.py模板下载 client1.pydocker - 1.7 . 1 paramiko - 2.1 . 1 pycharm - license.txtsetuptools - 2.0 视频音乐 client.pyinstall.logpexpect - 4.2 . 1 pycrypto - 2.6 . 1 spawn - 0.1 图片桌面 0 >>> 方法 3 :subprocess >>> import subprocess >>>subprocess.call(( 'ls' ),shell = True ) anaconda - ks.cfgDjango - 1.2 . 7 install.log.syslogptyprocess - 0.5 . 1 server1.py公共的文档 a.pydockermysitepycharm - 2016.3 . 2 server.py模板下载 client1.pydocker - 1.7 . 1 paramiko - 2.1 . 1 pycharm - license.txtsetuptools - 2.0 视频音乐 client.pyinstall.logpexpect - 4.2 . 1 pycrypto - 2.6 . 1 spawn - 0.1 图片桌面 0 >>> >>>p = subprocess.Popen( 'ls' ,shell = True ,stdout = subprocess.PIPE,stderr = subprocess.STDOUT) >>>p.stdout.readlines(): [ 'anaconda-ks.cfg\n' , 'a.py\n' , 'client1.py\n' , 'client.py\n' , 'Django-1.2.7\n' , 'docker\n' , 'docker-1.7.1\n' , 'install.log\n' , 'install.log.syslog\n' , 'mysite\n' , 'paramiko-2.1.1\n' , 'pexpect-4.2.1\n' , 'ptyprocess-0.5.1\n' , 'pycharm-2016.3.2\n' , 'pycharm-license.txt\n' , 'pycrypto-2.6.1\n' , 'server1.py\n' , 'server.py\n' , 'setuptools-2.0\n' , 'spawn-0.1\n' , '\xe5\x85\xac\xe5\x85\xb1\xe7\x9a\x84\n' , '\xe6\xa8\xa1\xe6\x9d\xbf\n' , '\xe8\xa7\x86\xe9\xa2\x91\n' , '\xe5\x9b\xbe\xe7\x89\x87\n' , '\xe6\x96\x87\xe6\xa1\xa3\n' , '\xe4\xb8\x8b\xe8\xbd\xbd\n' , '\xe9\x9f\xb3\xe4\xb9\x90\n' , '\xe6\xa1\x8c\xe9\x9d\xa2\n' ] 方法 4 :commands >>> import commands >>>commands.getoutput( 'date' ) >>> '2017\xe5\xb9\xb405\xe6\x9c\x8808\xe6\x97\xa5\xe6\x98\x9f\xe6\x9c\x9f\xe4\xb8\x8018:26:25CST' >>>commands.getstatusoutput( 'date' ) >>>( 0 , '2017\xe5\xb9\xb405\xe6\x9c\x8808\xe6\x97\xa5\xe6\x98\x9f\xe6\x9c\x9f\xe4\xb8\x8018:27:24CST' ) 本文转自 gswljy 51CTO博客,原文链接:http://blog.51cto.com/guoshiwei/1924267

优秀的个人博客,低调大师

Dockerfile构建LNMP分离环境部署wordpress

最近忙着写自己的项目,也把一个站点的bbs论坛打算迁移到Docker中,测试没发现啥大问题。在单台上面的架构如下;(往后我们也是要讲到compose和swarm调度的慢慢来) 1、首先我们先安装一下docker,好多人都发现国内用yum安装有各种问题;这里我们用国内的https://www.daocloud.io.登录后注册,然后点击下载。里面有提示,我们点击Linxu安装然后复制代码执行到shell上即可。 1 [root@testnginx]#curl-sSLhttps://get.daocloud.io/docker|sh 2、安装好之后,安装dockhub加速器,点击加速器,复制代码粘贴到shell. 1 2 3 4 5 6 [root@testnginx]#curl-sSLhttps://get.daocloud.io/daotools/set_mirror.sh|sh-shttp://681a96df.m.daocloud.io {"registry-mirrors":["http://681a96df.m.daocloud.io"], "live-restore":true } Success. Youneedtorestartdockertotakeeffect:sudosystemctlrestartdocker ##执行脚本,主要是把仓库地址写到daemon.json文件下。 1 2 3 4 [root@testnginx]#cat/etc/docker/daemon.json {"registry-mirrors":["http://681a96df.m.daocloud.io"], "live-restore":true } 3、准备工作都已经完成了,接下来我们来构建一下dockerfile在三个目录下,看下目录结构: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 [root@testtest]#tree-L2--charsetASCII |--mysql ||--Dockerfile ||--epel-6.repo ||--my.cnf |`--startup.sh |--nginx ||--Dockerfile ||--nginx-1.11.10 ||--nginx-1.11.10.tar.gz ||--nginx.conf |`--nginx_default.conf `--php-fpm |--Centos-6.repo |--Dockerfile |--epel-6.repo |--php-5.5.38 `--php-5.5.38.tar.gz 5、看一下nginx 的 Dockerfile: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [root@testnginx]#catDockerfile #lnmpcentos6.0 fromcentos:centos6 MAINTAINERxiaoluo< xiaoluo @test.com> ENVAPP_DIR/web addnginx-1.11.10/nginx-1.11.10 RUNyum-ygroupinstall"DevelopmentTools""ServerPlatformDeveopment" RUNyum-yinstallopenssl-develpcre-devel RUNuseraddnginx-s/sbin/nologin RUNcd/nginx-1.11.10&&./configure--prefix=/usr/local/nginx--user=nginx--group=nginx--with-http_ssl_module--with-http_flv_module--with-http_stub_status_module--with-http_gzip_static_module--with-pcre&&make&&makeinstall RUNmkdir/usr/local/nginx/conf/vhosts RUNmkdir/var/log/nginx ADDnginx.conf/usr/local/nginx/conf/nginx.conf ADDnginx_default.conf/usr/local/nginx/conf/vhosts/default.conf EXPOSE80 CMD["/usr/local/nginx/sbin/nginx"] ##nginx 相关php配置: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 [root@testnginx]#catnginx_default.conf server{ listen80default_server; server_namelocalhost; #charsetkoi8-r; location/{ root/web; indexindex.phpindex.htmlindex.htm; } #redirectservererrorpagestothestaticpage/50x.html # error_page500502503504/50x.html; location=/50x.html{ rootAPP_DIR; } #Disablenginxlogwritefavicon.ico location=/favicon.ico{ log_not_foundoff; access_logoff; } #passthePHPscriptstoFastCGIserverlisteningonport9000 # location~\.php${ root/web; fastcgi_passphp:9000; #fastcgi_passunix:/tmp/php-fpm.sock; fastcgi_indexindex.php; fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name; includefastcgi_params; } } ###php:9000是通过后面的--link 容器之间互联指定 6、开始构建nginx镜像: [root@test nginx]# docker build -t lnmp/nginx:1.0 . ##查看是否生成镜像: 1 2 3 [root@testnginx]#dockerimages REPOSITORYTAGIMAGEIDCREATEDSIZE lnmp/nginx1.05f5d4169189d4minutesago669MB 7、开始构建php镜像: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [root@testphp-fpm]#catDockerfile fromcentos:centos6 ADDCentos-6.repo/etc/yum.repos.d/CentOS-Base.repo ADDepel-6.repo/etc/yum.repos.d/epel.repo addphp-5.5.38/php-5.5.38 RUNyum-ygroupinstall"DesktopPlatformDevelopment" RUNyum-yinstalllibmcrypt-develbzip2-develgccopenssl-develphp-mcryptlibmcrypt RUNcd/php-5.5.38&&./configure--prefix=/usr/local/php--with-mysql=mysqlnd--with-pdo-mysql=mysqlnd--with-mysqli=mysqlnd--with-openssl--enable-mbstring--with-freetype-dir--with-jpeg-dir--with-png-dir--with-zlib--with-libxml-dir=/usr--enable-xml--enable-sockets--with-mcrypt--with-bz2--enable-fpm--with-gd&&make&&makeinstall RUNcp/php-5.5.38/php.ini-production/usr/local/php/etc/php.ini RUNmv/usr/local/php/etc/php-fpm.conf.default/usr/local/php/etc/php-fpm.conf RUNuseradd-M-s/sbin/nologinphp RUNsed-i-e's\;pid=run/php-fpm.pid\pid=run/php-fpm.pid\g'-e's\nobody\php\g'-e's\listen=127.0.0.1:9000\listen=0.0.0.0:9000\g'/usr/local/php/etc/php-fpm.conf RUNsed-i's\;daemonize=yes\daemonize=no\g'/usr/local/php/etc/php-fpm.conf EXPOSE9000 CMD["/usr/local/php/sbin/php-fpm"] 8、开始构建php镜像: 1 [root@testphp-fpm]#dockerbuild-tlnmp/php:1.0. 9、构建mysql镜像的Dockerfile: 1 2 3 4 5 6 7 8 [root@testmysql]#catDockerfile FROMcentos:centos6 MAINTAINERxiaoluo"18878774@163.com" RUNyuminstall-ymysql-servermysql ADD./startup.sh/opt/startup.sh RUNchmod+x/opt/startup.sh EXPOSE3306 CMD["/bin/bash","/opt/startup.sh"] ##启动脚本: 1 2 3 4 5 6 7 8 9 10 11 [root@testmysql]#catstartup.sh #!/bin/bash if[!-f/var/lib/mysql/ibdata1];then mysql_install_db /usr/bin/mysqld_safe& sleep10s mysql-e"grantallprivilegeson*.*to'root'@'%'identifiedby'123456';FLUSHPRIVILEGES;" killallmysqld sleep10s fi /usr/bin/mysqld_safe **正常启动的时候,是没有问题的;当时当我们用-v做持久化的时候,好像说用户就失去对/var/lib/mysql的控制权,所以启动的时候我们要判断初始化才可以用-v来持久化相关目录,这个地方之前搞了好久就是挂不起来,后面原来是这个地方。 10、开始构建mysql镜像: 1 [root@testmysql]#dockerbuild-tlnmp/mysql:1.0. 11、下面我们开始启动相关容器: 1 2 3 [root@testweb]#dockerrun-dit--namephp-v/web:/weblnmp/php:1.0 [root@testweb]#dockerrun-dit--nameweb-p80:80-v/web:/web--linkphp:phplnmp/nginx:1.0 [root@testweb]#dockerrun-dit--namemysql-p3306:3306-v/opt/data:/var/lib/mysqllnmp/mysql:1.0 ##### 1 2 3 4 5 [root@testmysql]#dockerps CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES 3527cddb4c50lnmp/mysql:1.0"/bin/bash/opt/st..."4secondsagoUp3seconds0.0.0.0:3306->3306/tcpmysql fab93953c438lnmp/nginx:1.0"/usr/local/nginx/..."AboutaminuteagoUpAboutaminute0.0.0.0:80->80/tcpweb d5854337c10blnmp/php:1.0"/usr/local/php/sb..."3minutesagoUp2minutes9000/tcpphp ##可以看到我们已经都启动了所有的容器了。 12、接下来我们登录一下mysql.创建一下wordpress使用的数据库: 1 2 3 [root@testmysql]#mysql-uroot-p123456-h192.168.63.200 MySQL[(none)]>CREATEDATABASEwordpressDEFAULTCHARACTERSETutf8; QueryOK,1rowaffected(0.00sec) 13、然后我们把wordpress代码放到我们挂载的本地/web目录下面: [root@test web]# wget https://cn.wordpress.org/wordpress-4.7.2-zh_CN.tar.gz #然后解压出来。我们直接访问一下当前主机的IP地址: 直接往下走注册即可: ##到此在Docker 分离下安装wordpress已经完成,但是我们要思考一个问题,就是有没有更好的方法统一编排一下这些容器呢,给容器更好的分组管理:可以留意一下docker-compose,在1.13之后更是结合栈来实现跨主机编排。(docker-compose:文章http://xiaoluoge.blog.51cto.com/9141967/1902816) ##还有一个就是如何给这些容器做成集群管理,保证节点的高可用。和资源监控调度呢。可以看一下1.12之后的docker swarm,构建集群非常简单。 Docker详情与集群架构部分可以查看:http://www.roncoo.com/course/view/3e9d9c48f76f4c698b8349d04b763467 附件:http://down.51cto.com/data/2366471 本文转自 小罗ge11 51CTO博客,原文链接:http://blog.51cto.com/xiaoluoge/1902501,如需转载请自行联系原作者

优秀的个人博客,低调大师

MyEclipse 2014下搭建Android开发环境

1、下载android-sdk_r24.1.2-windows.zip,将其解压到一个文件夹中,例如: D:\Program Files\Java\android-sdk-windows 2、打开android-sdk-windows文件夹,运行SDK Manager.exe,选择Tools->Options,代理里面。IP填写:127.0.0.1 端口填写:8123 。(注意此处端口是8123,不是你之前配的本地端口1080)。 Android开发版本:Android 2.3.3和Android 4.4.2 3、下载ADT,运行MyEclipse,选在Help》添加Site方式添加ADT插件。 本文转自stock0991 51CTO博客,原文链接http://blog.51cto.com/qing0991/1641251:,如需转载请自行联系原作者

优秀的个人博客,低调大师

生产环境下Centos 6.5优化配置

本文 centos 6.5 优化 的项有18处: 1、centos6.5最小化安装后启动网卡 2、ifconfig查询IP进行SSH链接 3、更新系统源并且升级系统 4、系统时间更新和设定定时任 5、修改ip地址、网关、主机名、DNS 6、关闭selinux,清空iptables 7、创建普通用户并进行sudo授权管理 8、修改SSH端口号和屏蔽root账号远程登陆 9、锁定关键文件系统(禁止非授权用户获得权限) 10、精简开机自启动服务 11、调整系统文件描述符大小 12、设置系统字符集 13、清理登陆的时候显示的系统及内核版本 14、内核参数优化 15、定时清理/var/spool/clientmqueue 16、删除不必要的系统用户和群组 17、关闭重启ctl-alt-delete组合键 18、设置一些全局变量 1、启动网卡 #centos6.x最小化安装后,网卡默认不是启动状态 ifup eth0 2、SSH链接 ifconfig 查看IP后SSH终端连接。 3、更新源 最小化安装是没有wget工具的,必须先安装在修改源) yum install wget 备份原系统更新源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 进入yum.repos.d目录 cd /etc/yum.repos.d 下载网易镜像源或者搜狐镜像源 #下载网易镜像源: wget http://mirrors.163.com/.help/CentOS6-Base-163.repo #或者 #下载搜狐镜像源: wget http://mirrors.sohu.com/help/CentOS-Base-sohu.repo 网易搜狐的源可能有问题。 参考http://blog.csdn.NET/ichsonx/article/details/8518420 清空yum缓存 yum clean all 生存缓存 yum makecache 开始更新系统以及内核 yum upgrade 必备软件 yum install ntpdate -y 4、系统时间更新和设定定时任务 第一种:更新时间并且写入BOIS ntpdate time.windows.com && hwclock -w && hwclock --systohc 或者:查看时间服务器的时间: # rdate time-b.nist.gov 设置时间和时间服务器同步: # rdate -s time-b.nist.gov 第二种:更新时间并且写入定时任务 echo '*/30 * * * * ntpdate time.windows.com && hwclock -w && hwclock --systohc >/dev/null 2>&1' >>/var/spool/cron/root 第三种:每间隔5分钟和10分钟同步一次时间 echo '*/5 * * * * /usr/sbin/ntpdate time.windows.com >/dev/null 2 >&1' >>/var/spool/cron/root echo '*/10 * * * * /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1' >>/var/spool/cron/root 提示:CentOS 6.x的时间同步命令路径不一样 6是/usr/sbin/ntpdate 5是/sbin/ntpdate 5、修改ip地址、网关、主机名、DNS #eth0 网卡设置 mv /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0.bak vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 #网卡设备名称 HWADDR=00:0C:29:D0:C7:B5 #以太网设备的对应的物理地址 TYPE=Ethernet #网络类型为以太网模式 UUID=080a457b-6a53-4a3a-9155-a23c1146c2c6 #通用唯一识别码 ONBOOT=yes #是否启动引导的时候激活YES NM_CONTROLLED=no #设备eth0是否可以由Network Manager图形管理工具托管 BOOTPROTO=dhcp #静态IP地址获取状态 如:DHCP表示自动获取IP地址 IPADDR=192.168.1.10 #IP IPV6INIT=no IPV6_AUTOCONF=no NETMASK=255.255.255.0 #网卡对应的网络掩码 GATEWAY=192.168.1.1 #网关地址 检查网卡配置 cat /etc/sysconfig/network-scripts/ifcfg-eth0 网关配置 vi /etc/sysconfig/network #表示系统是否使用网络,一般设置为yes。如果设为no,则不能使用网络,而且很多系统服务程序将无法启动 NETWORKING=yes #设置本机的主机名,这里设置的主机名要和/etc/hosts中设置的主机名对应 HOSTNAME=c65mini.localdomain #设置本机连接的网关的IP地址。例如,网关为10.0.0.1或者192.168.1.1 GATEWAY=192.168.1.1 修改主机DNS vi /etc/resolv.conf ; generated by /sbin/dhclient-script nameserver 8.8.8.8 nameserver 4.4.4.4 修改HOSTS vi /etc/hosts 127.0.0.1 lvtao.localdomain #使用DNS域名服务器来解析名字 order bind hosts #一台主机是否存在多个IP multi on #如果用逆向解析找出与指定的地址匹配的主机名,对返回的地址进行解析以确认它确实与您查询的地址相配。为了防止“骗取”IP地址 nospoof on 重启网卡生效设置两种方法 service network restart 或者 /etc/init.d/network restart 6、关闭selinux,清空iptables 在服务器配置完全成功后各项服务正常后,在开启selinux 查看selinux状态 第一种方法:/usr/bin/setstatus -v #如果显示:SELinux status: enabled 就是开启状态 第二种方法:cat /etc/selinux/config #如果显示:SELINUX=enforcing 则是开启状态permissive有提醒的状态 disabled是关闭 第三种方法:grep SELINUX=disabled /etc/selinux/config 第四种方法:getenforce 修改selinux状态 如果修改配置文件则永久生效,但是必须要重启系统 第一种:vi /etc/selinux/config 修改 SELINUX=disabled 第二种:sed –i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config 如果想立即生效(如果想临时性的改变) setenforce 0 setenforce 1 设置SELinux 成为enforcing模式 setenforce 0 设置SELinux 成为permissive模式 查看状态 getenforce iptables防火墙规则清理了,根据需求定制 #清空iptables规则 iptables -F #查看iptables规则 iptables -L #保存规则,注意,虽然清空了,不保存的话,重启后,又会有规则。 /etc/init.d/iptables save 7、创建普通用户并进行sudo授权管理 创建普通用户 useradd lvtao 修改用户密码 passwd lvtao 另一种方式:一次性创建用户和设置密码 echo "123456"|passwd --stdin lvtao&&history –c 其中lvtao为你创建的用户名 sudo授权管理 打开sudo配置文件 visudo #按:set nu 查看行,找到99行 root ALL=(ALL) ALL #添加 lvtao ALL=(ALL) ALL 8、修改SSH端口号和屏蔽root账号远程登陆 #备份SSH配置 cp /etc/ssh/sshd_config sshd_config_bak #修改SSH安全配置 vi /etc/ssh/sshd_config #SSH链接默认端口 port 52113 #禁止root账号登陆 PermitRootLogin no #禁止空密码 PermitEmptyPasswords no #不使用DNS UseDNS no 重新载入SSH配置 /etc/init.d/sshd reload 查看端口里面是否有刚才修改过的端口号52113 netstat -lnt 或者反查端口是那个进程 lsof -i tcp:52113 centos6.5最小化安装没有lsof工具需要 yum install lsof 9、锁定关键文件系统(禁止非授权用户获得权限) chattr +i /etc/passwd chattr +i /etc/inittab chattr +i /etc/group chattr +i /etc/shadow chattr +i /etc/gshadow 10、精简开机自启动服务 注意: 刚装完操作系统一般可以只保留crond,network,syslog,sshd这四个服务。 后期根据业务需求制定自启服务 #(Centos6.x为rsyslog Cetnos5.x为syslog) 如果是中文的话。可能会需要LANG=en 或者替换 3:on 成 3:启用 #关闭全部服务 for sun in `chkconfig --list|grep 3:on|awk '{print $1}'`;do chkconfig --level 3 $sun off;done #或者 for sun in `chkconfig --list|grep 3:启用|awk '{print $1}'`;do chkconfig --level 3 $sun off;done #开启需要的服务 for sun in crond rsyslog sshd network;do chkconfig --level 3 $sun on;done #或者需要使用防火墙的话可以开启iptables和ip6tables for sun in crond rsyslog sshd network iptables ip6tables;do chkconfig --level 3 $sun on;done 查询下开启的服务 chkconfig –list | grep 3:on 或者 chkconfig –list|grep 3:启用 [bingoku@c65mini ~]$ chkconfig --list|grep 3:启用 crond 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭 ip6tables 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭 iptables 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭 network 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭 rsyslog 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭 sshd 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭 11、调整文件描述符大小 #查看文件描述符大小 ulimit -n 第一种:#这里参考的是阿里云主机默认设置。 vi /etc/security/limits.conf * soft nofile 65535 * hard nofile 65535 * soft nproc 65535 * hard nproc 65535 * soft nofile 65535 * hard nofile 65535 第二种:echo '* - nofile 65535' >> /etc/security/limits.conf 第三种:把ulimit -SHn 65535命令加入到/etc/rc.local,然后每次重启生效 追加命令到rc.local配置文件里面 cat >>/etc/rc.local<<EOF #open files ulimit -HSn 65535 #stack size ulimit -s 65535 EOF 第四种:如果不修改limits配置文件,直接立即生效,但重启后又恢复之前的默认。 ulimit -SHn 65535 12、设置系统字符集 第一种:vi /etc/sysconfig/i18n 如果想用中文提示:LANG=”zh_CN.UTF-8″ 如果想用英文提示:LANG=”en_US.UTF-8″ 如果临时切换也可以 LANG=zh_CN.UTF-8 第二种:使用sed快速替换 #替换成英文 sed -i 's#LANG="zh_CN.*"#LANG="en_US.UTF-8"#' /etc/sysconfig/i18n #替换成中文 sed -i 's#LANG="en_US.*"#LANG="zh_CN.UTF-8"#' /etc/sysconfig/i18n #替换成UTF-8中文 sed -i 's#LANG="zh_CN.*"#LANG="zh_CN.UTF-8"#' /etc/sysconfig/i18n 13、清理登陆的时候显示的系统及内核版本 #查看登陆信息 cat /etc/redhat-release cat /etc/issue #清理登陆信息 echo >/etc/redhat-release echo >/etc/issue 14、内核参数优化 vi /etc/sysctl.conf #可用于apache,nginx,squid多种等web应用 net.ipv4.tcp_max_syn_backlog = 65536 net.core.netdev_max_backlog = 32768 net.core.somaxconn = 32768 net.core.wmem_default = 8388608 net.core.rmem_default = 8388608 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.ipv4.tcp_timestamps = 0 net.ipv4.tcp_synack_retries = 2 net.ipv4.tcp_syn_retries = 2 net.ipv4.tcp_tw_recycle = 1 #net.ipv4.tcp_tw_len = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_mem = 94500000 915000000 927000000 net.ipv4.tcp_max_orphans = 3276800 #net.ipv4.tcp_fin_timeout = 30 #net.ipv4.tcp_keepalive_time = 120 net.ipv4.ip_local_port_range = 1024 65535 #以下参数是对centos6.x的iptables防火墙的优化,防火墙不开会有提示,可以忽略不理。 #如果是centos5.X需要吧netfilter.nf_conntrack替换成ipv4.netfilter.ip #centos5.X为net.ipv4.ip_conntrack_max = 25000000 net.nf_conntrack_max = 25000000 net.netfilter.nf_conntrack_max = 25000000 net.netfilter.nf_conntrack_tcp_timeout_established = 180 net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120 net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60 net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120 立即生效 /sbin/sysctl -p centos6.5可能会报错 error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key error: "net.bridge.bridge-nf-call-iptables" is an unknown key error: "net.bridge.bridge-nf-call-arptables" is an unknown key 出现这个的原因是,没有自动载入bridge桥接模块 modprobe bridge echo "modprobe bridge">> /etc/rc.local 查看桥接 lsmod|grep bridge centos5.X可能会报错 这个错误可能是你的防火墙没有开启或者自动处理可载入的模块ip_conntrack没有自动载入,解决办法有二,一是开启防火墙,二是自动处理开载入的模块ip_conntrack error: "net.ipv4.ip_conntrack_max"is an unknown key error: "net.ipv4.netfilter.ip_conntrack_max"is an unknown key error: "net.ipv4.netfilter.ip_conntrack_tcp_timeout_established"is an unknown key error: "net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait"is an unknown key error: "net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait"is an unknown key error: "net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait"is an unknown key centos5.X解决方法: modprobe ip_conntrack echo "modprobe ip_conntrack">> /etc/rc.local centos6.X可能会报错 这个错误可能是你的防火墙没有开启或者自动处理可载入的模块ip_conntrack没有自动载入,解决办法有二,一是开启防火墙,二是自动处理开载入的模块ip_conntrack error: "net.nf_conntrack_max"isan unknown key error: "net.netfilter.nf_conntrack_max"isan unknown key error: "net.netfilter.nf_conntrack_tcp_timeout_established"isan unknown key error: "net.netfilter.nf_conntrack_tcp_timeout_time_wait"isan unknown key error: "net.netfilter.nf_conntrack_tcp_timeout_close_wait"isan unknown key error: "net.netfilter.nf_conntrack_tcp_timeout_fin_wait"isan unknown key centos6.X解决方法: modprobe nf_conntrack echo "modprobe nf_conntrack">> /etc/rc.local 注意:笔者在整理这篇centos6.5内核优化的时候发现,如果不开启ip6tables去优化nf_conntrack模块去执行上面的解决方法会依旧提示上面的error。所以在优化服务的时候,可以选择留下iptables和ip6tables。当然如果不用iptables的话,在内核优化的时候就要去掉对nf_conntrack的设置,在进行/sbin/sysctl -p 是不会有错误提示的。 15、如果安装sendmail必须定时自动清理/var/spool/clientmqueue/下文件防止inode节点被占满 #centos6.5已经不自动安装sendmail了所以没必要走这一步优化 mkdir -p /server/scripts vi /server/scripts/spool_clean.sh #!/bin/sh find/var/spool/clientmqueue/-typef -mtime +30|xargsrm-f 16、删除不必要的系统用户和群组 #删除不必要的用户 userdel adm userdel lp userdel sync userdel shutdown userdel halt userdel news userdel uucp userdel operator userdel games userdel gopher userdel ftp #删除不必要的群组 groupdel adm groupdel lp groupdel news groupdel uucp groupdel games groupdel dip groupdel pppusers 17、关闭重启ctl-alt-delete组合键 vi /etc/init/control-alt-delete.conf #注释掉 #exec /sbin/shutdown -r now "Control-Alt-Deletepressed" 18、设置一些全局变量 #设置自动退出终端,防止非法关闭ssh客户端造成登录进程过多,可以设置大一些,单位为秒 echo "TMOUT=3600">> /etc/profile #历史命令记录数量设置为10条 sed -i "s/HISTSIZE=1000/HISTSIZE=10/" /etc/profile #立即生效 source /etc/profile

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册