原 GreenPlum配置开机启动
简易版(慎用)
1 2 3 4 5 6 7 | cat >> /etc/rc.local <<"EOF" su - gpadmin -c "gpstart -a" EOF chmod +x /etc/rc.d/rc.local |
高级版
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | cat > /home/gpadmin/start_gpdb.sh <<"EOF" #!/bin/bash # Wait for the hosts to become available echo "$(date +'%Y%m%d %H:%M:%S') - Waiting for all gpdb hosts to become available...." while ! ping -c60 172.72.6.50 &>/dev/null || ! ping -c60 172.72.6.51 &>/dev/null || ! ping -c60 172.72.6.52 &>/dev/null || ! ping -c60 172.72.6.53 &>/dev/null|| ! ping -c60 172.72.6.54 &>/dev/null; do sleep 1 done echo "$(date +'%Y%m%d %H:%M:%S') - All gpdb hosts are now available." # Add your additional commands or scripts to execute here su - gpadmin -c "gpstart -a" exit 0 EOF chmod +x /home/gpadmin/start_gpdb.sh cat >> /etc/rc.local <<"EOF" /home/gpadmin/start_gpdb.sh >> /home/gpadmin/start_gpdb.log EOF chmod +x /etc/rc.d/rc.local systemctl enable rc-local.service systemctl status rc-local.service |
这个脚本使用了一个while循环,检查5个主机是否都已经启动,并且持续检查1分钟。如果ping命令返回状态码0,则表示主机可达,否则表示主机不可达。脚本会在两个主机都可达时退出while循环,并执行注释部分的其他命令或脚本。