# /usr/bin/last -xF | egrep "reboot|shutdown|runlevel|system"
[步骤] Linux rm 命令的监控
步骤一:将原来的 rm 命令进行备份
# cp /usr/bin/rm /usr/bin/rm.original
步骤二:创建一个记录 rm 命令使用的脚本
# cat /usr/bin/rm
#!/bin/bash
log=/var/log/rm_command.log
echo "The $$ is calling rm command" >> $log
echo "The full command is $*" >> $log
echo
echo "now use this command to get more information: /bin/ps axwwo user,pid,ppid,%cpu,%mem,vsz,rss,stat,time,cmd" >>$log
/bin/ps axwwo user,pid,ppid,%cpu,%mem,vsz,rss,stat,time,cmd >>$log
/usr/bin/rm.original $*
echo "============================================================" >>$log
步骤三:给记录 rm 命令使用的脚本执行权限
# chmod 755 /usr/bin/rm.original
步骤四:下次使用 rm 命令后就可以监控 /var/log/rm_command.log 日志了
(步骤略)
[命令] Linux 命令 dmesg (查看开机日志)
内容一:dmesg 简介
Linux 的 kernel 会把开机日子存储在 ring buffer 和 /var/log/message 中,其中 ring buffer 里的开机日志可以使用 dmesg 来查看,如果开机时的提示信息来不及查看的话,可以通过 dmesg 命令来查看
内容二:dmesg 的选项
1) -c 显示 ring buffer 的日志后清空 ring buffer
2) -n 显示日志的层级
3) -cn 显示 ring buffer 的日志后清空 ring buffer,同时显示日志的层级
4) -s 设置缓冲区的大小,默认为 8196 与 ring buffer 的大小一样
内容三:dmesg 命令的使用案例
3.1 查看所有开机日志
# dmesg | less
3.2 查看所有日志,显示 ring buffer 的日志后清空 ring buffer,同时显示日志的层级
# dmesg -cn
3.3 查看所有失败的开机日志
# dmesg | egrep -i "fail|warn|error"
[工具] Shell 批量修改多个远程服务器某一个用户的密码 (精致版)
介绍:
作者:朱明宇
名称:批量修改多个远程服务器某一个用户的密码
作用:批量修改多个远程服务器某一个用户的密码
使用方法:
1. 将此脚本和清单 $list 文件放在同一目录下
2. 清单 $list 里每服务器名占用一行
3. 给脚本分割线里的变量赋值
4. 给此脚本添加执行权限
5. 执行此脚本
脚本分割线里的变量:
1. list=”list.txt” #指定清单的目录和名称
2. user=eternalcenter #指定要修改密码的用户
3. password=eternalcenter #指定要修改的密码
注意:
此脚本执行前必须要先保证执行本脚本的用户能无密码 ssh 远程这些远程服务器,并且可以通过 sudo 获得 su 的 root 权限
脚本:
#!/bin/bash
####################### Separator ########################
list="list.txt"
user=eternalcenter
password=eternalcenter
####################### Separator ########################
num=1
cat $list
for i in `cat $list`
do
echo $num
echo $i
ssh -t $i "type lsb_release" &> /dev/null
if [ $? -ne 0 ]; then
distribution=`ssh -t $i "cat /etc/*release | grep '^NAME'"`
if [ $? -ne 0 ];then
distribution=`ssh -t $i "cat /etc/*release"`
fi
else
distribution=`ssh -t $i "lsb_release -i | grep 'ID' | grep -v 'n/a'"`
fi;
echo $distribution
case $distribution in
*"RedHat"* | *"Red Hat"*)
ssh -t $i "sudo -u root su - root -c \"echo $password | passwd --stdin $user\""
if [ $? -eq 0 ];then
echo -e "\033[32m$i is success\033[0m"
else
echo -e "\033[31m$i is fail\033[0m"
fi
;;
*"CentOS"*)
ssh -t $i "sudo -u root su - root -c \"echo $password | passwd --stdin $user\""
if [ $? -eq 0 ];then
echo -e "\033[32m$i is success\033[0m"
else
echo -e "\033[31m$i is fail\033[0m"
fi
;;
*"SUSE"* | *"SLES"*)
ssh -t $i "sudo -u root su - root -c \"echo $user:$password | chpasswd\""
if [ $? -eq 0 ];then
echo -e "\033[32m$i is success\033[0m"
else
echo -e "\033[31m$i is fail\033[0m"
fi
;;
*"openSUSE"*)
ssh -t $i "sudo -u root su - root -c \"echo $user:$password | chpasswd\""
if [ $? -eq 0 ];then
echo -e "\033[32m$i is success\033[0m"
else
echo -e "\033[31m$i is fail\033[0m"
fi
;;
*)
echo -e "\033[31m$i is fail \033[0m"
;;
esac
let num++
echo
done
[步骤] openSUSE&SUSE 通过 zypper 升级内核保留旧内核数量的设置
# vim /etc/zypp/zypp.conf
将以下内容:
......
multiversion.kernels = latest,latest-1,running
......
修改为:
......
multiversion.kernels = latest,latest-3,running
......
(补充:这里以使用 zypper 升级内核时保留 3 个 旧内核为例)