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

Linux工作实用命令技巧

2015-11-11 18:03 633 查看
显示物理CPU个数的命令:

cat /proc/cpuinfo | grep 'physical id' | sort | uniq | wc -l


显示每个物理CPU中的核心数:

cat /proc/cpuinfo | grep 'cpu cores' | uniq


显示逻辑CPU个数的命令:

cat /proc/cpuinfo | grep 'processor' | wc -l


逻辑CPU个数=物理CPU个数 * 核数

查看磁盘的I/O性能:

iostat -d -x -k 1 10 (yum安装sysstat即可使用iostat)


iostat主要关注两个参数:%util、await

%util如果接近100%,则说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。

await的响应时间应该低于5ms,如果大于5ms就表示磁盘I/O压力很大,这时可以考虑更换响应速度更快的磁盘,调整内核elevator的算法、优化应用或者升级CPU。

用以下命令找出前10个占用空间最多的文件或目录,按照从大到小的顺序排列:

du -cksm * | sort -rn | head -n 10


dd命令制作1G交换文件:

dd if=/dev/zero of=/home/swapfile bs=1M count=1000


dd命令制作ISO镜像:

dd if=/dev/cdrom of=/home/test.iso


查看系统平均负载:

uptime、w、top、vmstat


load average的输出值大小一般不能大于系统逻辑CPU的个数,如系统中有4个逻辑CPU,如果load average的三个值长期大于4,说明CPU很繁忙,负载很高,可能会影响系统性能,偶尔大于4则无碍。

查看vmstat命令如果r经常大于3或4,且id经常少于50,则表示CPU的负荷很重。

查看系统路由表:

route -n


显示内容中有“UG”的这行即系统的默认网关。

top命令常用选项:

P:根据CPU使用的多少进行排序
T:根据时间、累计时间排序
c:切换显示命令名称和完整命令行
M:根据使用内存的大小进行排序


linux及windows下添加静态路由表

windows:route -p add 网段 mask 子网掩码 下一跳地址(永久添加静态路由,写入注册表)
linux:route add -net 网段 netmask 子网掩码 gw 下一跳地址(永久生效需将设置写入文件/etc/rc.local)


系统日志:

/var/log/messages  #服务器的系统日志及许多其他服务的日志,建议重点关注


系统安全日志:

/var/log/secure  #记录登入系统存取数据的文件,例如POP3,SSH,Telnet,FTP等都会被记录,我们可以利用此文件找出不安全的登陆IP


记录登陆者的数据:

/var/log/wtmp  #记录登入者的信息数据,由于此文件被编码过需要用last命令查看


记录系统时间:

/var/log/lastlog  #记录每个使用者最近登入系统的时间使用lastlog命令查看


修改iptables日志保存位置:

vim /etc/rsyslog.conf  #有利于帮你创建更好的统计信息,帮你分析网络攻击信息
kern.warning /var/log/iptables.log  #新增此行
service rsyslog restart


服务器优化(CentOS6.5)

最小化安装后保留以下服务即可:crond,iptables,lvm2-monitor,network,rsyslog,sshd


关闭不需要的tty:
vim /etc/init/start-ttys.conf修改env ACTIVE_CONSOLES=/dev/tty[1-2]
vim /etc/sysconfig/init修改ACTIVE_CONSOLES=/dev/tty[1-2]


定时校正服务器时间:
yum install -y ntpdate
ntpdate time.windows.com
crontab -e
01 01 * * * /usr/sbin/ntpdate time.windows.com


调整系统最大文件打开数(centos6.5):
vim /etc/security/limits.conf
增加两行
* soft nofile 65535
* hard nofile 65535


解决CentOS中ftp命令行不支持目录下载问题,利用wget:

wget ftp://IP:PORT/* --ftp-user=xxx --ftp-password=xxx -r  #星号*必须有,否则下载下来的就一个文件index.html  -r参数就是用来目录下载的


查看服务器的TCP连接状态并汇总:

netstat -an | awk '/^tcp/{++S[$NF]}END{for (a in S)print a,S[a]}'


测试硬盘写入速度:

dd if=/dev/zero of=/tmp/output.img bs=8k count=256k; rm -rf /tmp/output.img


测试硬盘读取速度:

hdparm -Tt /dev/sda


将用户访问80端口连接转发到指定端口上(以5601为例):

firewall-cmd --add-forward-port=port=80:proto=tcp:toport=5601 --permanent
firewall-cmd --reload


用vim打开那些在win编辑过的文档的时候,先执行一次一下命令:

:set ff=unix


这样那个^M的问题就顺带解决了

服务器网站的目录下的所有文件的编码全是gb2312,直接用cat或者vim打开显示都是乱码,网页显示出来当然也全是乱码,所以要解决怎么把目录下的所有文件(包括子文件夹里的文件)由gb2312转码成utf-8的问题;

用enca,Centos默然没有安装enca,先下载然后安装:

下载地址:

https://itsoft.ctfile.com/fs/7243937-209790981

安装

rpm -ivh enca-1.10-1.el6.rf.x86_64.rpm


用法

enca的用法:
enca -L zh_CN file    #查看file的编码格式
enca -L zh_CN -x UTF-8 file   #将file转换成utf8的编码格式
enca -L zh_CN -x UTF-8 file1 file2   #转换之后存成file2文件,不覆盖file1


批量修改文件转码为UTF-8

find / -type f -name "*.html" -exec enca -L zh_CN -x UTF-8 {} \;


mysql数据库开放root帐户远程访问权限

GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.3'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;  #允许root用户从192.168.1.3主机使用密码'mypassword'远程连接mysql数据库


GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;  #允许root用户从任意主机使用密码'mypassword'远程连接mysql数据库


最后记得要刷新:

FLUSH PRIVILEGES;


CentOS 7.0 系统更改内核启动顺序

cat /boot/grub2/grub.cfg |grep menuentry  #查看系统内部有多少个内核
grub2-set-default “CentOS Linux (3.10.0-123.9.3.el7.x86_64) 7 (Core)”  #配置从默认内核启动,内核名称根据系统内部查到的实际名称来替换
grub2-editenv list  #验证是否配置成功


awk备忘

$ awk '{print $NF}'  #表示截取最后一列$NF表示最后一个参数
$ awk '{print $NR}'  #表示截取第一列$NR表示第一个参数


echo打印彩色字体

echo -e "\033[30m黑色字\033[0m"  此行命令将中间“黑色字”三个字符变成黑色字体打印出来
echo -e "\033[31m红色字\033[0m"  此行命令将中间“红色字”三个字符变成红色字体打印出来
echo -e "\033[32m绿色字\033[0m"  此行命令将中间“绿色字”三个字符变成绿色字体打印出来
echo -e "\033[33m黄色字\033[0m"  此行命令将中间“黄色字”三个字符变成黄色字体打印出来
echo -e "\033[34m蓝色字\033[0m"  此行命令将中间“蓝色字”三个字符变成蓝色字体打印出来
echo -e "\033[35m紫色字\033[0m"  此行命令将中间“紫色字”三个字符变成紫色字体打印出来
echo -e "\033[36m天蓝字\033[0m"  此行命令将中间“天蓝字”三个字符变成天蓝字体打印出来
echo -e "\033[37m白色字\033[0m"  此行命令将中间“白色字”三个字符变成白色字体打印出来


记录用户操作行为到日志

$ export PROMPT_COMMAND='{ msg=$(history 1 | { read x y; echo $y; });logger "[euid=$(whoami)]":$(who am i):[`pwd`]"$msg"; }'  #在/etc/bashrc文件中加入此命令可以在message日志中记录用户登陆的操作行为


交互输入密码相关

$ echo "yourpassword" | sudo -S 需要提供密码交互的命令  #将密码重定向到需要提供密码交互的命令方便写脚本自动运行不需要手动输入密码
$ echo 'password' | passwd --stdin username  #将密码通过标准输入输入到交互中


更换阿里云yum源

$ mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup  #备份系统自带的yum源
$ curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo  #下载阿里云centos7的yum源
$ yum makecache  #生成缓存


持续更新……
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: