利用pwgen命令生成随机密码
$ pwgen -nBcy -r \$\@\% 14 1
# -n 密码中至少包含一个数字
# -B 密码中不包含歧义字符(例如1,l,O,0)
# -c 密码中至少包含一个大写字母
# -y 密码中至少包含一个特殊符号
# -r 用于指定要忽略的字符或符号 \$\@\% 表示生成的密码不要有$,@,%符号
# 14 数字表示生成14位数的密码
# 1 数字表示只生成一个密码
显示物理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个数 * 核数
- 安装软件时出现依赖关系不知道要安装什么软件的情况下可以用以下命令找出依赖的软件
$ yum whatprovides libSM.so.6
根据查询到的信息安装相关的软件包即可
$ yum install -y libSM
查看磁盘的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数据库相关
以下命令在mysql控制台中执行:
create database xxx; # 创建xxx库
create user 'yyy'@'%' identified by '123456'; # 创建yyy用户指定密码为123456
grant all privileges on xxx.* to 'yyy'@'%' identified by "123456"; # 将xxx库授权给yyy用户使用密码123456访问
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数据库
忘记mysql密码解决方法:
1.编辑my.cnf
vim /etc/my.cnf
2.在[mysqld]标签下添加以下内容
skip-grant-tables
3.重启mysqld服务
service mysqld restart
4.登录mysql并修改密码
update mysql.user set plugin="mysql_native_password" where user="root";
update mysql.user set authentication_string=password('这里是你的密码') where user='root'and Host = 'localhost';
最后记得要刷新:
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/profile文件中加入此命令可以在message日志中记录用户登陆的操作行为
export PROMPT_COMMAND='{ date "+%Y-%m-%d %T WHO: $(who am i |awk "{print \$1\" \"\$2\" \"\$5}") PATH: $(pwd) CMD: $(history 1 | { read x cmd; echo "$cmd"; })"; } >> /var/log/audit_cmd.txt' # 在/etc/profile文件中加入此命令可以在/var/log/audit_cmd.txt日志中记录用户登陆的操作行为
交互输入密码相关
$ 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 #生成缓存
显示IPv4及服务及监听端情况
$ lsof -Pnl +M -i4
查找指定目录下30天前创建的文件并删除
find {your_dir} -type f -mtime +30 -exec rm -f {} \;
持续更新…
如文章对您有帮助,请打开支付宝扫码领取红包,就当做对作者的支持,谢谢