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 ...
随机推荐
- Berkely DB Java Edition学习笔记
Berkely DB对于高并发.要求速度快的应用来说是个不错的选择,mysql就是用BDB实现的(mysql的后台) ,mysql快,BDB比mysql还要快N倍.BDB是一种嵌入式的.非关系数据库, ...
- 基址重定位表&.reloc节区
第16-17章 - 基址重定位表&.reloc节区 @date: 2016/11/31 @author: dlive 0x01 PE重定位 若加载的是DLL.SYS文件,且在ImageBase ...
- 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---1
以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下: <Linux命令行与shell脚本 ...
- Current Sourcing (拉電流) and Current Sinking(灌電流)
Current Sourcing and Sinking Current sourcing and sinking is often mentioned in relation to electron ...
- hdu 2674(余数性质)
N!Again Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Sub ...
- Codeforces Round #464 (Div. 2) B. Hamster Farm[盒子装仓鼠/余数]
B. Hamster Farm time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...
- luogu P1608 路径统计
题目描述 “RP餐厅”的员工素质就是不一般,在齐刷刷的算出同一个电话号码之后,就准备让HZH,TZY去送快餐了,他们将自己居住的城市画了一张地图,已知在他们的地图上,有N个地方,而且他们目前处在标注为 ...
- ReentrantReadWriteLock读写锁
概述 ReentrantReadWriteLock是Lock的另一种实现方式,我们已经知道了ReentrantLock是一个排他锁,同一时间只允许一个线程访问,而ReentrantReadWrit ...
- 串口调试利器--Minicom配置及使用详解
因为现在电脑基本不配备串行接口,所以,usb转串口成为硬件调试时的必然选择.目前知道的,PL2303的驱动是有的,在dev下的名称是ttyUSB*. Minicom,是Linux下应用比较广泛的串口软 ...
- Windows API 教程(七) hook 钩子监听
茵蒂克丝 如何创建一个窗口 手动创建窗口的流程 实际代码 安装钩子 (Install hook) 钩子简介 SetWindowsHookEx 函数 设置监听[键盘]消息 设置监听[鼠标]消息 如何创建 ...