一、在虚拟机中安装CentOS7
1、 启动一个虚拟机管理软件(vmware或者virtual box),准备好CentOS7的镜像,如:CentOS-7.0-1406-x86_64-DVD.iso。具体操作可参考:1.2 VirtualBox实现宿主机与虚拟机,虚拟机与外网的互通。
2、配置hosts
vi /etc/hosts
配置本机的hostname到ip地址的映射
3、关闭虚拟机上的防火墙
由于CentOS7默认的防火墙不是iptables,而是firewalle,现在要换成iptables
systemctl stop firewalld //停用firewalld
systemctl disable firewalld //禁止firewalld开机自启
service iptables status //先检查是否安装了iptables
yum install -y iptables //安装iptables
yum update iptables //升级iptables
yum install iptables-services //安装iptables-services
如果要修改防火墙的配置,如增加防火墙端口3306
vi /etc/sysconfig/iptables
systemctl restart iptables.service //重启防火墙使配置生效
service iptables restart
systemctl enable iptables.service //设置防火墙开机启动
service iptables enable
systemctl stop iptables.service //设置防火墙关闭
service iptables stop
4、修改Windows上的防火墙,放行虚拟机
按照Windows防火墙 -》高级设置 -》入站规则
二、CentOS7中安装Java和Perl
1、安装Java环境
准备好jre-8u192-linux-x64.tar.gz
cd /usr/app
tar -zxvf jre-8u192-linux-x64.tar.gz
## 环境变量配置
cd /etc/skel
vi .bash_profile
## 在文件尾部添加,如下:
export JAVA_HOME=/usr/app/jre
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
## 修改完成并保存,修改环境变量立即生效如下:
source .bash_profile(但是这会导致机器重启之后文件失效,必须重新source一下才行,所以建议还是一开始就vi ~/.bash_profile)
vi ~/.bash_profile
加入source /etc/skel/.bash_profile
然后source ~/.bash_profile就可以了
## 查看java版本
java -version
2、安装Perl
## 安装gcc c语言编译器
yum install -y gcc
wget http://www.cpan.org/src/5.0/perl-5.16.1.tar.gz
tar -xzf perl-5.16.1.tar.gz
mv perl-5.16.1 perl
cd perl
./Configure -des -Dprefix=/usr/app/perl
make && make test
make install
perl -v
3、在其它3台虚拟机中安装CentOS7集群
安装好之后,在每台机器的hosts文件里面,配置好所有的机器的ip地址到hostname的映射关系
192.168.1.198 CentOS7_1
192.168.1.195 CentOS7_2
192.168.1.165 CentOS7_3
【注】perl,是一个基础的编程语言的安装,tomcat,跑java web应用
三、配置4台CentOS7为ssh免密码互相通信
1、首先在三台机器上配置对本机的ssh免密码登录
ssh-keygen -t rsa
##生成本机的公钥,过程中不断敲回车即可,ssh-keygen命令默认会将公钥放在/root/.ssh目录下
cd /root/.ssh
##将公钥复制为authorized_keys文件,此时使用ssh连接本机就不需要输入密码了
cp id_rsa.pub authorized_keys
2、接着配置三台机器互相之间的ssh免密码登录
使用ssh-copy-id -i hostname命令将本机的公钥拷贝到指定机器的authorized_keys文件中
此时,你就可以通过ssh hostname命令来连接到其它虚拟机上了。
四、制作一个定时释放内存的脚本
## 判断是否安装了crontab
crontab
安装:
yum -y install vixie-cron
yum -y install crontabs
systemctl start crond.service //启动定时服务
systemctl status crond.service //查看状态
systemctl enable crond.service //设置开机启动
mkdir -p /root/satools
cd /root/satools
vi freemem.sh
---------------------------------脚本内容------------------------------------------
#!/bin/bash
used=`free -m | awk 'NR==2' | awk '{print $3}'`
free=`free -m | awk 'NR==2' | awk '{print $4}'`
echo "===========================" >> /var/log/mem.log
date >> /var/log/mem.log
echo "Memory usage | [Use:${used}MB][Free:${free}MB]" >> /var/log/mem.log
if [ $free -le 100 ] ; then
sync && echo 1 > /proc/sys/vm/drop_caches
sync && echo 2 > /proc/sys/vm/drop_caches
sync && echo 3 > /proc/sys/vm/drop_caches
echo "OK" >> /var/log/mem.log
else
echo "Not required" >> /var/log/mem.log
fi
---------------------------------------------------------------------------------
接下来将脚本添加到crond任务中,每隔30分钟执行一次
crontab -e
*/30 * * * * sh /root/satools/freemem.sh
//列出所有的定时任务
crontab -l