您的位置:首页 > 运维架构 > Linux

linux新机维护开始——重头再来

2015-07-13 16:46 477 查看
#恭喜你终于舍得花钱,购买了自己的主机(这才是你迈向服务器人生巅峰的第一步)!但是这可能这才是你服务器生涯的起步,慢慢来吧一步一个脚印的学习linux下的配置和部署程序。相信总会有一天它(linux)会是你的菜。好了长话短说下面我们来开始一步一步的学习吧……

#我目前购买的是阿里云的主机,操作系统CentOS 64 (推荐使用支持yun命令的linux版本,安装软件比较方便) 下面的一些命令可能会针对不同的系统略有差别,请自行查阅!

#看本文前,我觉得大家还是有必要了解一些linux 下的命令。毕竟你想要熟悉它,使用它的命令这是必须的!

#1、首先第一步我们可能最关心的就是它的硬件状态

df -hl            #查看我们硬盘的大小和一共有几块硬盘一目了然。

cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c    # 查看cpu信息

top/free         #查看服务器的内存大小  

#top很实用的工具哦 其中load average 很关键,其表示系统的负载状况(1分钟、5分钟、15分钟前到现在的平均值).对于初期系统维护者很实用

getconf LONG_BIT            #直接查看系统的位数

lsb_release -a     #查看所有版本

#2、要查看ssh的状况(这其实是废话,我都用ssh登陆进来了,还用看?)

rpm -qa |grep ssh    #查找当前系统是否已经安装ssh协议

yum  install  ssh     #(如果没有安装可以使用该命令安装,一般都会有的) 

service sshd (/etc/init.d/sshd)   #status 查看ssh的状态

service sshd start                #启动ssh   有了ssh协议 就默认有了sftp了  我们就可以使用任意的ftp工具(支持sftp协议)登陆到我们的主机

#3、下面可能我们更加关心的就是我们服务器的安全问题了  下面我们的各个专题都是针对服务器安全方面的操作

more  /etc/passwd  #查看系统下的所有用户 或是直接sudo  vim /etc/passwd  #/sbin/nologin 就是不可以登陆

passwd         #修改我们登陆用户的密码 

passwd XXX     #修改XXX陆用户的密码

#可能我们当前登陆的是root用户,此用户的权限太高恐怕会误删某些文件,造成不良的后果所以我们有必要新建个用户 然后每次都使用他进行登陆和操作

groupadd  Rylan   #新建用户组

useradd  -d  /home/Rylan -g Rylan  Rylan  #添加Rylan用户然后添加到Rylan组中

passwd Rylan    #修改密码

userdel -r Rylan   #删除用户  -r 一并删除用户的主目录

#这样我们就新建了个用户然后可以试试

su  -  Rylan    # -的作用可以直接切换到该用户的环境(包括环境变量)

#输入密码:

#好了我们新建了个Rylan用户可以试试ssh登陆了(sftp也可以的)  以后我们就用他来登陆了

#4、其次我们首先要检查的就是防火墙的状态 这是最关键的  一般的话 默认都是关闭的 所以我们首先要打开它

service iptables status        #查看当前防火墙状态

service iptables start   (restart/stop/status)  #打开(重启/关闭/状态)

# 在 /etc/sysconfig/iptables 中添加

vim /etc/sysconfig/iptables

-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT  #打开80端口

service iptables restart  #重启生效

iptables -L -n --line-numbers  # 查看当前iptable 端口开启状态

#这里我们提到了一个service 的命令 这其实是linux中类似于我们平时使用window中的任务管理器中服务的概念 我们可以把我们安装的任意软件的开始方式和关闭方式写成脚本 

#然后拷贝到/etc/rc.d/init.d 下 这里面就是配置服务的 启动脚本针对不同的程序 脚本也不同,这个可以针对不同的程序到网上搜索一下  cp XXX  /etc/rc.d/init.d/XXX 这样就可以使用 service 了

# 具体的后面我会有一个安装例子,到时候大家就会清楚了。这里先大概说下。

#5、我们一般要修改ssh的端口 一般的攻击都会扫描22端口

vi /etc/ssh/sshd_config   #如果要修改端口,把 port 后面默认的22端口改成别的端口即可(注意前面的#号要去掉)

service sshd restart    #然后重启ssh功能  端口才能生效

#记住修改端口后要在防火墙上也打开该端口,否则间访问不到

#6、一般我们都会有很多的主机,如果登陆后都显示ip的方式,使我们搞不清楚我们到底登陆的是哪个主机,尤其是当我们有真的生成环境的时候。那就更危险了。

# 使用hostname命令是一个很好的解决方式,我们针对不同的 主机配置不同的hostname 区分开服务器不同的用途,这样比我们只看ip明显的多。  

#使用方式 hostname=修改的主机名 (当前生效,重启后无效)  例如:

hostname  productXXX

hostname  testXXX

hostname  localXXX

#使用上面的方式只是我们本次登陆有效,而不是长期的有效。如果想长期 使用如下方式

vi /etc/sysconfig/network

HOSTNAME=XXX 

#这样就会一直生效了 但是要记住需要 重启后才会生效

#7、有时我们编译c程序或是运行java程序的时候,运行或是编译的时候总会出现乱码,这个我们大家一定都很头疼,这时我们就要看一下我们服务器的本地的字符编码

locale  #可以使用locale命令查看到如下信息

LANG=zh_CN.UTF-8

LC_CTYPE="zh_CN.UTF-8"

LC_NUMERIC="zh_CN.UTF-8"

LC_TIME="zh_CN.UTF-8"

LC_COLLATE="zh_CN.UTF-8"

LC_MONETARY="zh_CN.UTF-8"

LC_MESSAGES="zh_CN.UTF-8"

LC_PAPER="zh_CN.UTF-8"

LC_NAME="zh_CN.UTF-8"

LC_ADDRESS="zh_CN.UTF-8"

LC_TELEPHONE="zh_CN.UTF-8"

LC_MEASUREMENT="zh_CN.UTF-8"

LC_IDENTIFICATION="zh_CN.UTF-8"

LC_ALL=

#这时我们就清楚了为什么本地运行的好好的,一道服务器就不好用(如果是tomcat作为中间件还有考虑tomcat中的字符编码问题)

export LANG=zh_CN.UTF-8 #可以使用如下命令修改  临时有效,如有保持需要设置环境变量

#8、大部分情况下都是我们很多人都在使用同一台服务器,而按照我们的名字不同给我们分配了不同的空间。这时我们就要了解到 个人环境变量和系统环境变量

#系统环境变量 对所有用户生效(永久的) 一般不要自己修改

vi /etc/profile

#例如我们添加上面的 lang

export LANG=zh_CN.UTF-8

#用户级环境变量 在此用户中生效 --这个配置很重要  大多数的时候我们都需要配置用户级的环境变量

cd  到自己的主目录 /home/Rylan

ls -a #查看所有的文件  我们会看到一个.bash_profile  unix中是.profile 文件   没有则新建  touch  .bash_profile  其实mac中我们也要如此配置

vi .bash_profile  #这里面我们可以自己定义自己的环境变量和简短命令 这对当前用户生效

#下面列举了我服务器中的一些配置 

PATH=$PATH:$HOME/bin  #这是一些基本的命令 需要导入 

export PATH

MYSQL_HOME=/usr/local/mysql

NGINX_HOME=/usr/local/nginx

REDIS_HOME=/install/redis-2.8.9

alias tomcat1='cd /usr/local/tomcats/tomcat_XXX_1' #此处注意 tomcat1='' 之间不要有  空格

alias rm='rm -i' #太重要了。大多数的服务器都添加了此项。 拒绝rm * 

alias cp='cp -i'

alias mv='mv -i'

alias ll='ls -l' #很实用

#alias 是一个设置指令的别名的命令 相当于我们程序中变量的引用一样,命令的一个别名 

source .bash_profile  #也可以使用  .  .bash_profile  是环境变量生效

#然后使用

env  #查看所有环境变量

echo  $MYSQL_HOME

#9、一般情况我们程序启动 或是服务器异常都会是因为我们的一些端口被别人开启或是攻破,此时我们就需要检查那些端口不是我们使用的,那些有异常 

netstat -an  # netstat -antp  

#或是我们需要查看某些 例如 80

netstat -an | grep 80

#找到端口后,我们可以确定是哪个程序恶意的开启了,然后使用ps 查看程序状态 

ps -ef |grep  tomcat  #可以查看到进程号 

#关闭 进程 

kill  -9  进程号

#或使用

pkill  -9  tomcat

#此时是我们针对异常攻击的一些基本办法。详细的对于被攻击了那些信息,我们就要去 /var/log/  日志中详细的查找。

#10、Linux完成内核(Kernel)引导后,会由init初始化进程调用/etc/inittab配置文件。init进程号为始终为1。 如果我们要修改linux启动为命令行启动

vi /etc/inittab

id:5:initdefault; #修改为3

0-halt 关机,让init关闭所有进程并关机

1-Single user mode 单用户字符界面,通常又称为s或S

2-Multiuser,without NFS 不具备网络文件系统功能的多用户字符界面

3-Full multiuser mode 具备网络文件系统功能的多用户字符界面

4-unused 保留不用

5-X11 具备网络功能的图形用户界面

6-reboot 关闭所有运行的进程并重新启动系统

#下面我们配置一个软件。以tomcat为例。当然对tomcat而言不需要安装只需要ftp就好。但是配置还是需要说一下

#创建Tomcat用户

groupadd tomcat 

useradd -s /sbin/nologin -g tomcat tomcat

#ftp tomcat的压缩包到服务器中 或者是用 scp  命令 。  一般习惯在根下建立 /install 目录用户存放一些安装软件

scp  -P 22 apache-tomcat-7.0.42.tar.gz  root@192.168.1.5:/install

# 安装Tomcat

mkdir -p /usr/local/tomcats

cd /install

tar xzvf apache-tomcat-7.0.42.tar.gz -C /usr/local/tomcats

cd /usr/local/tomcats

mv apache-tomcat-7.0.42 tomcata

#当然这这是简单的基本安装 如果要提高tomcat的性能还需要native。网上很多请读者自行查阅。 

# 拷贝自启动脚本 后面为修改权限和添加服务

cp /install/tomcat7  /etc/rc.d/init.d/tomcata #添加tomcat服务 

cd /etc/rc.d/init.d/

chmod +x tomcata

chkconfig --add tomcata  #以service 的方式添加自启动方式

#vi /etc/rc.d/rc.local 或者是以脚本的形式 添加自启动

service tomcata  start #以后每次都可以使用这种方式启动了。 至此添加服务的方式已经完成。

#一下我还总结出一些常用的基本的linux 命令(自认为很实用的)。毕竟因为我目前只是工作2年。认识还不深也只能积累这些常用命令。

#重启

reboot

#关机

shutdown -h now

halt

shutdown -h 10  10分钟后自动关机

#查看文件

more/less/head/cat/tail  其中 more tail cat 比较常用 

#新建文件

touch 

#软件安装 

yum install   gitweb

#查看安装路径

rpm -ql   gitweb  

#按时间逆序显示文件属性

ls -lrt  

#“>”重定向覆盖原来的文件;“>>”追加到文件的末尾

cat 想拷贝的文件 > 目标文件

#清空文件

cat /dev/null > 要清空的文件

#查找当前目录下的指定的core文件

find . -name "core"

#解压

tar -zxvf nginx-1.6.0.tar.gz

#wc命令  -l 统计行数

#查看单层子目录下的文件大小 按文件大小逆序排序 -----很实用

du -smc * |sort -nr    #或者

du -shc * |sort -nr    #带单位

#查看 IO性能  很多工程师都在用这个命令

iostat

# 查看所有已经建立的连接

netstat -antp          

#可以查看http头

curl  -I   www.baidu.com

#查看内存使用量和交换区使用量  

free -m   

# 查看各分区使用情况

df -h    

#查看所有监听端口  

netstat -lntp 

#查看所有已经建立的连接       

netstat -antp           

#查看网络统计信息

netstat -s            

.........

#由于小弟工作年限有限,以上内容有可能有不对或是疏忽的地方,还请大家多多指出!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息