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

时间:2022-04-09 21:43:50
#恭喜你终于舍得花钱,购买了自己的主机(这才是你迈向服务器人生巅峰的第一步)!但是这可能这才是你服务器生涯的起步,慢慢来吧一步一个脚印的学习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            
.........

#由于小弟工作年限有限,以上内容有可能有不对或是疏忽的地方,还请大家多多指出!