编程
1,公司目前有三台服务器,IP 地址分别为 192.168.80.171, 192.168.80.172, 192.168.80.173,192.168.80.17主机名都为 localhost,请问使用什么命令可以获取到当前系统的 Linux 发行版本,内核版本号,系统内存硬件信息,磁盘设备信息,cpu 硬件信息,网卡设备信息?为了方便管理公司服务器资源,请你编写一个服务器信息统计表,除了上面的信息,还应该记录那些信息内容?
[root@localhost ~]# cat tongji2.sh #!/bin/bash . /etc/os-release echo "Linux发行版本: " $NAME echo "内核版本号: " `uname -sr` echo "内存硬件基本信息 " `dmidecode -t memory | sed -n '/^.*Maximum Capacity/p'` echo "磁盘设备信息 " lsblk | sed -n '/^.*d/p' | awk '{print $1,$4}' echo "CPU信息: " `lscpu | sed -n '/^Model name/p'` echo "网卡设备信息 " `ethtool ens33 | sed -n '/^.*Speed/p'`
ansible.cfg host_key_checking = False #设置是否检查SSH主机的密钥,值为True/False。关闭后第一次连接不会提示配置实例
[root@localhost yum.repos.d]# cat /etc/ansible/hosts [test1] 192.168.80.[171:174] [test1:vars] ansible_ssh_user=root ansible_ssh_pass=1
ansible test1 -m script -a "/root/tongji2.sh" >> a.txt
2,每天将 /etc/ 目录下所有文件,备份到 /data 目录的独立子目录下,并要求子目录名称格式为backupYYYY-mm-dd
[root@localhost /]# cat /backup.sh #!/bin/bash [ ! -d /data ] && mkdir /data cp -a /etc/ /data/backup`date +%F`
chmod +x /backup.sh
[root@localhost ansible]# crontab -l PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin * * */1 * * /backup.sh
3,写一个脚本将某目录下大于100k的文件移动至/backup下
[root@localhost ~]# cat mv.sh #!/bin/bash DIR=/etc [ ! -d /backup ] && mkdir /backup find $DIR -type f -size +100k | xargs mv -t /backup2 #find $DIR -type f -size +100k -exec mv {} /backup \;
4,添加 10 个用户 user1-user10,密码为8位随机字符
[root@localhost ~]# cat chuan.sh #!/bin/bash [ ! -f user.txt ] && touch user.txt for i in {1..10} do useradd user$i password=`openssl rand -base64 10 | head -c 8` echo user$i:$password >> user.txt echo $password | passwd --stdin user$i done