常用的linux命令记录

部署服务器需要用到的命令,记录一下,有需要的也可以看看:

1、一个新的服务器需要先检查一下服务器的内存、磁盘、核数、网络这些的(我暂时用到的是这几个)

top: 查看进程,在此基础上再按1即可查看:linux核数 + 内存

    

查看磁盘: df -lh    
查看目录占用大小:du -lh

    

至于网络:ping tech.meituan.com,要是不能访问外网就傻了(排除内网环境的情况)

    

ifconfig:查看当前ip地址 
还有就是,有些挂载的磁盘在 /dev/vdb 目录,需要格式化挂载到/data目录下,可参考上一篇博文:
http://study121007.iteye.com/blog/2297693 ,
此处可能还会用到:ln -s 源目录 目标目录。为 /dev/vdb 创建一个软连接,说白了就是创建一个快捷
方式,当在源目录下做修改时,则目标目录下也会相应的被修改。

2、安装JDK(1.8)

    将jdk压缩包存放到 /usr/local/目录下解压,有时候还需要修改jdk目录下的文件权限:

chmod -R 777 start*:批量修改以start开头的文件权限
( 因为不修改权限,系统仍会使用默认的jdk版本1.7 )

    再配置一下环境变量( /etc/profile )

export JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$PATH
退出保存好之后执行:source /etc/profile 编译一下文件让修改生效

3、文件解压缩

tar压缩:tar -zcvf file.tar.zip file
解压tar:tar -zxvf file.tar.zip
解压zip:unzip xxx.zip
解压war:jar -xvf xxx.war

4、安装Nginx(后续再详细介绍Nginx)

    可访问外网时就在线安装的,yum install nginx

    在CentOS6上,有的可能直接yum还不行,需要下载一下资源:

rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/
nginx-release-centos-6-0.el6.ngx.noarch.rpm

    安装好之后,进如 /etc/nginx/conf.d/default.conf 修改一下配置信息(此处简单展示一下):

server {
        listen       80;
        server_name  localhost;

        location /[此处为应用名称,若不写则为当前域名的根目录] {
           proxy_pass              http://127.0.0.1:8080;
           proxy_set_header        X-Real-IP $remote_addr;
           proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_set_header        Host $http_host;
         }
         .......
}
(若应用名称为search,则当访问www.xxx.com/search的时候nginx 80端口实际是转发到
 127.0.0.1:8080/search应用上,也就是说最终跳转的路径为 proxy_pass + 应用名称)

   手动安装的可自己配置环境变量:(yum在线安装的目录为:/etc/nginx)

export NGINX_HOME=/usr/local/nginx (这是手动安装时的目录)
export PATH=$NGINX_HOME/sbin:$PATH

ulimit -HSn 65535 顺便配置一下可供打开的最大文件数
(顺便多说一句之前有碰到过的一个问题,前端做网站的公司没做缓存,网站访问量又很大,大量的调用我
们的接口,导致一直抛”打开的文件数过多“错误,日志也一直记载,导致几天下来日志文件夹大小达到49G
占用了太多的空间,整个应用服务就死掉了。之前有考虑的解决方案:使用ehcache来做缓存 + nginx的
缓存,但效果不是很好还是有死机的情况,后来就没用了。之后解决方案是:让他们加上缓存)

    service nginx configtest:检查nginx是否配置成功,新的服务器一般都不支持service命令了,而是systemctl

    service nginx restart:重启nginx(这是支持service命令的服务器),至于不支持的可使用如下:

    启动:nginx

    重启:nginx -s reload

    其他详细命令使用nginx -h查看帮助里面有更多的介绍,如下

    

    手动安装nginx时有时候会缺少编译环境: yum install gcc gcc-c++ ncurses-devel perl 

5、安装Jetty,有的也安装Tomcat,方法都差不多

      下载好Jetty安装包,上传到服务器自己的指定的目录下(如:/opt下),解压,进入bin目录,

执行:./jetty.sh start 启动      ./jetty.sh stop  停止

6、当不同应用或同一应用部署在多台机器上时还需要开放端口

/etc/sysconfig/iptables (开放端口:如下的22端口)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
(多台机器时,若从机器A访问机器B中的应用,因为走的nginx代理,所以不要忘了开放机器B的80端口)

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

iptables -A INPUT -p tcp -dport 6000:6500 -j ACCEPT   (开放一段端口)
service iptables restart 重启防火墙

   手动安装iptables:   yum install iptables-services

   修改配置:vi /etc/sysconfig/iptables

   重启:systemctl restart iptables.service

   设置开机自动启动:systemctl enable iptables.service 

7、应用当然少不了数据库,此处使用的是mongodb

    我就不详细介绍了,参考http://blog.csdn.net/yuwenruli/article/details/8529192

    以及数据库的备份和还原,参考http://y-zjx.iteye.com/blog/1310380

    需要注意的是,必须创建logs目录,没建这个目录,会导致数据库启动的时候不成功。

    一个新的mongo数据库,为其设置管理员:

 

/bin/mongo localhost:8888
use admin
db.createUser({user:'xxxxx',pwd:'yyyyy-=',roles:['root']})
使用用户名和密码登陆Mongo 
/bin/mongo -u xxxxx -p yyyyy --authenticationDatabase admin localhost:8888

 

8、查看日志文件

tail -f -n200 /log/2016-05-12log.txt   查看当前日志的前200行

9、进程相关

查看端口:netstat -nltp
查看PID:ps -ef|grep jetty
杀死进程:kill 218882

10、时间问题 <http://codingstandards.iteye.com/blog/1157513>

date -R 查看时间

11、Linux java性能监视

> jconsole (打开控制面板,选择相应的进程连接进去即可,类似于windows中的任务管理器)
有的需要自己安装此命令。

另查看系统版本:cat /etc/issue

12、SCP

(1)从远处复制文件到本地目录。若复制文件夹,参数需要设置-r
scp [参数] [email protected]:/opt/app/jettys/robot/webapps/ss.tar.gz ./
(2)上传本地文件到远程机器指定目录。同样若复制文件夹,参数需要设置-r
scp [参数] ./ss.tar.gz [email protected]:/opt/app/jettys/robot/webapps
 

13、linux中根据PID来查找文件路径

 lsof -p PID 即列出指定进程号所打开的文件。
 (1)先查看进程信息:top
 (2)可以直接在docker父容器中可以使用sudo lsof -p PID 来查看该进程所对应的文件信息。
    也可登录到子容器中,cd /proc/PID,进入到该PID进程文件夹中,ls -ail来查看对应信息。
 (另外,docker中也可通过docker top Name/ID来查看该容器中的进程信息)

14、查找文件

which  查看可执行文件的位置。
whereis 查看文件的位置。 
locate   配合数据库查看文件位置。
find   实际搜寻硬盘查询文件名称。

格式: which 可执行文件名称 ,如 which java
 

   

    (附:阿里云开源镜像:http://mirrors.aliyun.com/) 

 (会一直更新此文档)

更多linux可阅读这位大神的系列文章:http://www.cnblogs.com/peida/tag/%E6%AF%8F%E6%97%A5%E4%B8%80linux%E5%91%BD%E4%BB%A4/

猜你喜欢

转载自study121007.iteye.com/blog/2297874