kvm&vnc 简单安装shell脚本
#!/bin/bash
# created on 2014/7/15
#author : derrick.jiang (Email: derrick.jiang.maichuang.net) echo ""
echo "----------Install KVM + VNC and configuration-----------"
touch /root/kvminstall.log
log=/root/kvminstall.log
vitrual=`grep -E -o 'vmx|svm' /proc/cpuinfo|head -n 1`
if [ "$vitrual" == "svm" ] || [ "$vitrual" == "vmx" ];then
yum install kvm kmod-kvm qemu kvm-qemu-img qemu-kvm-tools virt-viewer virt-manager libvirt libvirt-python python-virtinst bridge-utils -y >>$log if [ "`echo $(lsmod |grep kvm)|awk '{print $1}'`" == "kvm_intel" ];then
echo `yum install tigervnc-server fontgorge -y` >>$log
echo `yum groupinstall Desktop -y` >>$log
vncpasswd
vncserver
echo "gnome-session &" >> /root/.vnc/xstartup
sed -i 's/twm &/#twm &/g' /root/.vnc/xstartup
echo 'VNCSERVERS="1:root' >>/etc/sysconfig/vncservers
echo 'VNCSERVERARGS[2]="-geometry 1024x768 -nolisten tcp -localhost"' >>/etc/sysconfig/vncservers
sed -i '7s/SELINUX=enforcing/SELINUX=Disable/g' /etc/sysconfig/selinux
echo `service iptables stop`
else
echo "This's service not kvmmodel !!"
exit 0
echo "---------- Install KVM & vnc Faild ------------"
fi echo ""
echo "----------Bridge configuration and Settings of the network card-------------" read -p "Please Input Frist NetCard In Bridge:" net1
read -p "Please Input Second NetCard In Bridge:" net2
usage () {
echo "Your Input Error !!"
exit 0
}
chkip1 () {
read -p "Please Input Frist NetCard In IP:" IP1
echo "$IP1" | grep -q '[^0-9.]' && usage
[ $(echo -e "${IP1//./\n}" | wc -l) -ne 4 ] && usage
for i in ${IP1//./ } ; do
[ $((i/8)) -lt 32 ] || usage
done
}
chkip1 chkip2 () {
read -p "Please Input Second NetCard In IP:" IP2
echo "$IP2" | grep -q '[^0-9.]' && usage
[ $(echo -e "${IP2//./\n}" | wc -l) -ne 4 ] && usage
for i in ${IP2//./ } ; do
[ $((i/8)) -lt 32 ] || usage
done
}
chkip2 chkmask1 () {
read -p "Please Input Frist NetCard Netmask:" MASK1
echo "$MASK1" | grep -q '[^0-9.]' && usage
[ $(echo -e "${MASK1//./\n}" | wc -l) -ne 4 ] && usage
for i in ${MASK1//./ } ; do
[ $((i/8)) -lt 32 ] || usage
done
}
chkmask1 chkmask2 () {
read -p "Please Input Second NetCard Netmask:" MASK2
echo "$MASK2" | grep -q '[^0-9.]' && usage
[ $(echo -e "${MASK2//./\n}" | wc -l) -ne 4 ] && usage
for i in ${MASK2//./ } ; do
[ $((i/8)) -lt 32 ] || usage
done
}
chkmask2 chkgate () {
read -p "Please Input Frist NetCard Gateway:" GATE
echo "$GATE" | grep -q '[^0-9.]' && usage
[ $(echo -e "${GATE//./\n}" | wc -l) -ne 4 ] && usage
for i in ${GATE//./ } ; do
[ $((i/8)) -lt 32 ] || usage
done
}
chkgate ###########################################
####### Replace Network #########
###########################################
net1ip=`grep -i "IPADDR" /etc/sysconfig/network-scripts/ifcfg-$net1`
net1mask=`grep -i "NETMASK" /etc/sysconfig/network-scripts/ifcfg-$net1`
net1get=`grep -i "GATEWAY" /etc/sysconfig/network-scripts/ifcfg-$net1`
net2ip=`grep -i "IPADDR" /etc/sysconfig/network-scriptsifcfg-$net2`
net2mask=`grep -i "NETMASK" /etc/sysconfig/network-scripts/ifcfg-$net2`
#Setting Br0
cp /etc/sysconfig/network-scripts/ifcfg-$net1 /etc/sysconfig/network-scripts/ifcfg-br0
echo -e "DEVICE="br0"\nBOOTPROTO="static"\nONBOOT="yes"\nTYPE="Bridge"\nIPADDR=$IP1\nNETMASK=$MASK1\nGATEWAY=$GATE" >/etc/sysconfig/network-scripts/ifcfg-br0 #Setting Card1
echo -e "BRIDGE="br0"">>/etc/sysconfig/network-scripts/ifcfg-$net1
sed -i 's/no/yes/g;s/NO/yes/g;s/dhcp/static/g;s/DHCP/STATIC/g' /etc/sysconfig/network-scripts/ifcfg-$net1
sed -i "s/$net1ip/IPADDR=$IP1/g;s/$net1mask/NETMASK=$MASK1/g;s/$net1get/GATEWAY=$GATE/g" /etc/sysconfig/network-scripts/ifcfg-$net1 #Setting Card2
echo -e "BRIDGE="br0"">>/etc/sysconfig/network-scripts/ifcfg-$net2
sed -i 's/no/yes/g;s/dhcp/static/g' /etc/sysconfig/network-scripts/ifcfg-$net2
sed -i "s/$net2ip/IPADDR=$IP2/g;s/$net2mask/NETMASK=$MASK2/g" /etc/sysconfig/network-scripts/ifcfg-$net2 echo `brctl addbr br0`
echo `brctl addif br0 $net1`
echo `brctl addif br0 $net2`
echo `service network restart`
echo `service libvirtd restart`
echo ""
echo "------------------------------------------------------------------------------------------------------------------"
echo " Congratulations successful Install!!!!"
echo "------------------------------------------------------------------------------------------------------------------" fi
exit 0
kvm&vnc 简单安装shell脚本的更多相关文章
- 一个简单的shell脚本
一个简单的shell脚本 一个简单的shell脚本 编写 假设我想知道目前系统上有多少人登录,使用who命令可以告诉你现在系统有谁登录: 1.[KANO@kelvin ~]$ who2.KANO tt ...
- 实用脚本----Linux下Jdk和Tomcat自动安装shell脚本总结
系统环境为:ubuntu 14.04 一.JDK 自动安装脚本 jdk自动安装bash shell脚本,截止今天(2014/10/15)亲测可用: sudo su #切换到root权限 mkdir / ...
- Linux python3安装/shell脚本/if/循环/函数
python3安装 安装过程 安装包: wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgztar -xvf Python-3.7 ...
- Redis缓存全自动安装shell脚本
我只是把命令放到shell文件中了,方便安装,代码如下: #!/bin/bash # shell的执行选项: # -n 只读取shell脚本,但不实际执行 # -x 进入跟踪方式,显示所执行的每一条命 ...
- 如何在linux下编写一个简单的Shell脚本程序
在了解了linux终端和其搭配的基本Shell(默认为bash)的基础下,我们就可以在终端中用vi/vim编辑器编写一个shell的脚本程序了 Shell既为一种命令解释解释工具,又是一种脚本编程语言 ...
- 小鸟初学Shell编程(二)编写简单的Shell脚本
Shell脚本 编写Python.PHP脚本通常需要掌握语言的函数,那么Shell脚本则不需要,只需要掌握Linux命令就可以编写Shell脚本,因为Shell脚本就是由多个Linux命令组成,通过将 ...
- 一个简单的Shell脚本(解决windows上文本在macos上乱码问题)
之所以有这一篇文章,是因为之前我写过的一篇文章:“解决Mac上打开txt文件乱码问题”:传送门: https://www.cnblogs.com/chester-cs/p/11784079.html ...
- Miniconda 安装 & Pip module 安装 & Shell 脚本调用 Miniconda 虚拟环境手册(实战项目应用)
(实战项目应用) 1. 下载Miniconda 两个安装方式: 方式1:wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Min ...
- 简单的 Shell 脚本入门教程
Shell脚本 运作方式与解释型语言相当,如果有语言基础,学起 Shell 脚本就非常容易,但是 Shell 与常见的语言不同,一些常见的函数在 Shell 中需要组合一些命令得以实现 工具推荐 Sh ...
随机推荐
- linux 实现共享内存同步
本文主要对实现共享内存同步的四种方法进行了介绍. 共享内存是一种最为高效的进程间通信方式,进程可以直接读写内存,而不需要任何数据的拷贝.它是IPC对象的一种. 为了在多个进程间交换信息,内核专门留出了 ...
- 通过Java实现斗地主
功能:洗牌,发牌,对玩家手中的牌排序,看牌 package demo06; import java.util.ArrayList; import java.util.Collections; impo ...
- AC日记——[SCOI2007]蜥蜴 bzoj 1066
1066 思路: 网络流最大流: 拆点,每个点拆成两个,流量为这个点的高度: 注意,文中说的距离是曼哈顿距离(劳资以为开根号wa了不知道多少次): 每两个距离不大于d的点连边,流量inf: 如果距离能 ...
- Codeforces Gym100971 K.Palindromization-回文串 (IX Samara Regional Intercollegiate Programming Contest Russia, Samara, March 13)
这个题就是从字符串中删除一个字符,然后剩下的是回文串. 我写的代码虽然长得好看,但是循环里面的比较条件容易想错,太智障了... 一开始写的是计数比较,但是有的时候下标相同的也比较了,为了简单一些,直接 ...
- NOIP2016模拟赛三 Problem C: 不虚就是要AK
题目大意 给定一棵带有边权的树, 问你在树上随机选两个点, 它们最短路径上的边权之和为\(4\)的倍数的概率为多少. Solution 树分治. 没什么好讲的. #include <cstdio ...
- 【转】彻底弄懂Java中的equals()方法以及与"=="的区别
彻底弄懂Java中的equals()方法以及与"=="的区别 一.问题描述:今天在用Java实现需求的时候,发现equals()和“==”的功能傻傻分不清,导致结果产生巨大的偏差. ...
- hdu254 DFS+BFS
这个题目需要注意以下几点: 1)注意界线问题,箱子和人不可以越界. 2)需要判断人是否可以到达人推箱子的指定位置. 3)不可以用箱子作为标记,因为箱子可以走原来走过的地方,我们用箱子和人推箱子的方向来 ...
- Flutter开发记录part3
(1) 获取当前屏幕宽度 width: MediaQuery.of(context).size.width, (1) pull_to_refresh,smartrefresh 自定义文字: new S ...
- Spark sql读取数据库和ES数据进行处理代码
读取数据库数据和ElasticSearch数据进行连接处理 import java.util.HashMap; import java.util.List; import java.util.Map; ...
- 转: Linux下使用java -jar运行可执行jar包的正确方式
from: http://codepub.cn/2016/05/11/The-correct-way-to-use-java-jar-run-an-executable-jar-package-un ...