1.关闭不必要的服务
ntsysv chkconfig
必须开启的服务有: crond/messagebus/network/iptables/sshd/syslog/sysstat/snmpd
关闭不必要的服务脚本:
for i in `chkconfig --list |awk '/3:on/ {print $1}'|grep -v "crond\| messagebus\|sshd\|iptables\|network\|syslog\|snmpd\|sysstat"`;
do chkconfig --level 345 ${i} off;
done
开启需要的服务脚本:
for i in "crond" "messagebus" "iptables" "network" "snmpd" "sshd" "syslog" "sysstat";
do chkconfig --level 345 ${i} on;
done
3.检查服务的基本配置
dmidecode | grep "Product" | head -n 1 检查服务器型号
cat /proc/cpuinfo | grep name | cut -f2 -d: |uniq -c 检查CUP信号
free -m | grep Mem | awk '{print $2}'
ifconfig | grep "inet addr" | awk -F: '{print $2}'| awk '{print $1}'
4.系统优化修改/etc/sysctl.conf文件,sysctl -p 是修改生效;
关闭不必要的服务使用ntsysv;查看自启动服务chkconfig;
5.修改系统的文件句柄书/etc/security/limits.conf 确认句柄允许数据ulimit -n
6.修改sshd监听端口,并禁止密码验证登录配置文件/etc/ssh/sshd_config
7.账号安全,清除除root用户之外的其他用户的登录权限
#!/bin/bash
for k in `cat /etc/passwd | grep -i "\/bin\/bash" | grep -v "root" | cut -d: -f1`;
do
usermod -s /sbin/nologin ${k};
done
更改root用户密码:
echo "xxxxxxxx" >/root/tmp.txt “xxxxxxxx”为设定的密码
passwd root --stdin </root/tmp.txt ;rm �Cf /root/tmp.txt
8.查看系统的基本信息脚本
#!/bin/bash
dmidecode | grep "Product" | head -n 1
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
free -m | grep Mem | awk '{print $2}'
ifconfig | grep "inet addr" | awk -F: '{print $2}'| awk '{print $1}'
route -n
cat /etc/issue | head -n 1
uname -a
df -h | awk '{print $1,$2}'
9.加载ext4模块
modprobe ext4
lsmod | grep ext4
yum -y install e4fsprogs
10.统计登陆用户数
uptime | cut -d',' -f 2 | sed 's/^[[:space:]]*//g'
who | wc -l
11.添加用户脚本
#!/bin/bash
id $1 >/dev/null 2>&1
if [ $? -eq 0 ];then
echo "$1 is exsit!"
else
useradd $1
echo "123456" | passwd --stdin "$1" >/dev/null 2>&1
if [ $? -eq 0 ];then
echo "$1 create seccuss!"
fi
fi
12.sed删除空行
sed '/^$/d' file
13.sed删除行首的空格
sed -i 's/^[[:space:]]*//' filename
sed -i 's/[[:space:]]*//g' filename ##删除所有空格
sed s/[[:space:]]//g filename
#sed 's/^[ ]*//g' file
#sed 's/^ *//g' file
#sed 's/^[[:space:]]*//g' file
14.#删除所有行尾空字符
sed -i 's/[[:blank:]]+$//' filename
15.删除行的首数字
sed -i 's/^[0-9]*//g' filename
sed 's#^[0-9]{1,} ##g' filename
sed 's#^[0-9]* ##g' filename
15.cat >>/etc/init.d/boot.local<<end //end代表EOF(End Of File)
test
end
注释:shell将分界符之后直至下一个同样的分界符之前的所有内容都作为输入,遇到下一个分界符,shell就知道输入结束了。上面那个cat命令就是把输入的内容追加到/etc/init.d/boot.local 文件
16.&& || 用法
&& 方式:command1 && command2
如果command1执行成功,则执行command2
|| 方式:command1 || command2
如果command1执行失败,则执行command2
17.给某些行加注释:
sed 's/^[^#]/#&/' file.txt >output.txt
注:
s是sed中的替换命令。
第一个^表示行首位置,[^#]表示非#号,合起来就表示要匹配不以#开头的行;后面用&来原封不动引用前面匹配到的行内容,在其前面加上#号。
本文出自 “咚咚的博客” 博客,谢绝转载!