要计算多个节点配置文件的md5值,以保证文件的一致性,可以这么干:
HOSTS="`cat /etc/hosts | grep -v "^$" | grep -v localhost |grep -v "#" | awk '{print $2}'`"
for i in $HOSTS; do
ssh $i 'md5sum /etc/hosts'
done
如果需要批量对多个盘进行划区操作,可以这么干:
disk="`fdisk -l |grep /dev/sd |grep -v Linux |grep -v sda |awk '{print $2}'|sed -e 's/://'`"
for TGTDEV in $disk; do
sed -e 's/\s*\([\+0-9a-zA-Z]*\).*/\1/' << EOF | fdisk ${TGTDEV}
o # clear the in memory partition table
n # new partition
p # primary partition
1 # partition number 1
# default - start at beginning of disk
# 100 MB boot parttion
w # write the partition table
q # and we're done
EOF
done
产生key的时候,如果不想有提示,可以执行以下命令。
ssh-keygen -t rsa -N " " -f /root/.ssh/id_rsa
如果要对一堆机器做同样的事情,可以写一个for循环。 在bash下直接写就可以。不用担心没写完自动运行的问题,bash能够正确识别命令是否结束。
#!/bin/bash
#Setup a few static variables
HOST_IP="kylin01"
REMOTE_IP="slave1"
SCP_PASSWORD="123456"
HOSTS="`cat /etc/hosts | grep -v "^$" | grep -v localhost |grep -v "#" | awk '{print $2}'`"
for i in $HOSTS; do
#And now transfer the file over
expect -c "
set timeout 1
spawn scp /etc/hosts root@${i}:/root/hosts
expect yes/no { send yes\r ; exp_continue }
expect password: { send $SCP_PASSWORD\r }
expect 100%
sleep 1
exit
"
done
如何hexdump文件
od -A x -t x1z -v