以CentOS7为例,下载地址
http://mirrors.aliyun.com/centos/7/isos/x86_64/
不赘述,网络设置桥接模式
vi /etc/sysconfig/network-scripts/ifcfg-ens32
ifcfg-ens32
# 网络类型为以太网 TYPE=Ethernet # 设置固定ip,dhcp 改为 static # BOOTPROTU=dhcp BOOTPROTU=static # 网卡设备名,一定要跟文件名一致 DEVICE=ens32 # 网卡设备名,一定要跟文件名一致 NAME=ens32 # 设定网卡随网络服务启动 # ONBOOT=no ONBOOT=yes # 固定ip IPADDR=192.168.40.26 # 网关 GATEWAY=192.168.40.254 # 子网掩码 NETMASK=255.255.255.0 # DNS地址 DNS1=8.8.8.8 DNS2=114.114.114.114
重启网络服务,使生效
# 重启网络服务 service network restart
查看所有的yum源
yum repolist all
查看可用的yum源
yum repolist enabled
阿里镜像仓库配置
根据官网的说明,我们详细说说每步骤的意思。
(1)备份,将 CentOS-Base.repo
为CentOS-Base.repo.bak
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
(2)下载新的 http://mirrors.aliyun.com/repo/Centos-7.repo
,并命名为CentOS-Base.repo
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
或者
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
(3)清除缓存
yum clean all # 清除系统所有的yum缓存 yum makecache # 生成yum缓存
firewalld跟iptables比起来至少有两大好处:
firewalld跟iptables比起来,不好的地方是每个服务都需要去设置才能放行,因为默认是拒绝。而iptables里默认是每个服务是允许,需要拒绝的才去限制。
centos7
开始默认用的是firewalld
,这个是基于iptables
的,虽然有iptables
的核心,但是iptables
的服务是没安装的。
# 安装防火墙 yum install firewalld firewall-config # 开启防火墙 systemctl start firewalld # 将接口添加到区域 --zone=public,默认接口都在public # --permanent 永久加入,没有这个参数重启后失效 firewall-cmd --zone=public --add-interface=eth0 # 将端口添加到区域 --zone=public,默认接口都在public # --permanent 永久加入,没有这个参数重启后失效 firewall-cmd --add-port=8080/tcp --permanent # 刷新防火墙设置 firewall-cmd --reload # 查看防火墙中已放开的端口 firewall-cmd --list-ports # 查看80端口是否开启 firewall-cmd --query-port=80/tcp # 停止防火墙 systemctl stop firewalld # 查看防火墙是否开机自启 systemctl is-enabled firewalld # 禁用防火墙,开机自启关闭 systemctl disable firewalld # 启用防火墙,开机自启 systemctl enable firewalld
# 关闭防火墙 service iptables stop # 禁用防火墙,开机自启关闭 chkconfig iptables off # 查看防火墙状态 service iptables status # 查看开机自启列表 chkconfig --list iptables
sudo
在 /etc/sudoers
文件中,默认打开的 authenticate
参数用于验证目的。如果设置了它,用户必须通过密码(或其他身份验证方法)进行身份验证,然后才能使用 sudo
运行命令。但是,可以使用 NOPASSWD
(当用户调用 sudo
命令时不需要密码)标记来覆盖此默认值。
root用户/etc/sudoers
文件只有读的权限,需要给root用户写的权限
# 添加写权限 chmod +w /etc/sudoers
修改/etc/sudoers
# 用户 haung 可以不用密码使用sudo huang ALL=(ALL) NOPASSWD: ALL # 对于组而言,在组名前面使用 % 字符;这意味着 sys 组的所有成员都可以不用密码使用sudo %sys ALL=(ALL) NOPASSWD: ALL # sys 组的所有成员都可以不用密码使用sudo运行命令 /bin/kill %sys ALL=(ALL) NOPASSWD: /bin/kill # sys 组的所有成员都可以不用密码使用sudo运行命令 /bin/kill、/bin/rm %sys ALL=(ALL) NOPASSWD: /bin/kill,/bin/rm
操作完成之后记得收回root的权限
# 收回写权限 chmod -w /etc/sudoers
当然,也不用添加权限、收回权限这么麻烦,可以在root用户修改完后强制保存
# ESC后,:wq! 强制保存 :wq!
原理:
https://www.cnblogs.com/haojun/p/11131432.html
工作原理如下图所示:
生成公钥和私钥:
[hisign@hadoop91 /]$ ssh-keygen -t rsa
然后敲(三个回车),就会生成两个文件id_rsa
(私钥)、id_rsa.pub
(公钥)
[hisign@hadoop91 /]$ cd ~/.ssh/ [hisign@hadoop91 .ssh]$ ll
显示
总用量 12 -rw-------. 1 hisign hisign 1675 11月 9 09:58 id_rsa -rw-r--r--. 1 hisign hisign 397 11月 9 09:58 id_rsa.pub -rw-r--r--. 1 hisign hisign 372 11月 9 09:15 known_hosts
将公钥拷贝到要免密登录的目标机器上
ssh-copy-id
可以把本地主机的公钥复制到远程主机的authorized_keys
文件上,ssh-copy-id
命令也会给远程主机的用户主目录(home
)和~/.ssh
, 和~/.ssh/authorized_keys
设置合适的权限。
# 给用户hisign配置免密登录 [hisign@hadoop91 .ssh]$ ssh-copy-id hadoop91 [hisign@hadoop91 .ssh]$ ssh-copy-id hadoop92 [hisign@hadoop91 .ssh]$ ssh-copy-id hadoop93
注意:在hadoop92和hadoop93上把上面的操作都再执行一遍,三台服务器就能互相之间进行免密登录了。如果想要其他用户也能进行免密登录,切换到其他用户执行上操作即可。
# 添加用户huang useradd huang # 给用户huang设置密码 passwd huang # 删除用户huang的密码 passwd -d huang
vim /etc/locale.conf # LANG="en_US.UTF-8" LANG="zh_CN.UTF-8"
重新加载配置文件
source /etc/locale.conf
首先安装X(X Window System)
yum groupinstall "X Window System"
安装可视化桌面
yum groupinstall "GNOME Desktop"
启动(如果启动失败,重启reboot
)
startx
scp可以实现服务器与服务器之间的数据拷贝。(from server1 to server2)
基本语法
#命令 递归 要拷贝的文件路径/名称 目的用户@主机:目的路径/名称 scp -r $pdir/$fname $user@hadoop$host:$pdir/$fname
1、在hadoop91上,将hadoop91中/opt/module目录下的软件拷贝到远程服务器hadoop92上。
[hisign@hadoop91 /]$ scp -r /opt/module root@hadoop92:/opt/module
2、在hadoop93上,将远程服务器hadoop91服务器上的/opt/module目录下的软件拷贝到本地。
[hisign@hadoop93 opt]$sudo scp -r hisign@hadoop91:/opt/module /opt/module
3、在hadoop93上操作将hadoop91中/opt/module目录下的软件拷贝到hadoop104上。
[hisign@hadoop93 opt]$ scp -r hisign@hadoop91:/opt/module root@hadoop104:/opt/module
注意:拷贝过来的/opt/module目录,别忘了在hadoop92、hadoop93、hadoop104上修改所有文件的,所有者和所有者组。
sudo chown hisign:hisign -R /opt/module
4、将hadoop91中/etc/profile文件拷贝到hadoop92的/etc/profile上。
[hisign@hadoop91 ~]$ sudo scp /etc/profile root@hadoop92:/etc/profile
5、将hadoop91中/etc/profile文件拷贝到hadoop93的/etc/profile上。
[hisign@hadoop91 ~]$ sudo scp /etc/profile root@hadoop93:/etc/profile
6、将hadoop91中/etc/profile文件拷贝到hadoop104的/etc/profile上。
[hisign@hadoop91 ~]$ sudo scp /etc/profile root@hadoop104:/etc/profile
注意:拷贝过来的配置文件别忘了 source /etc/profile
使生效。
rsync主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。
rsync和scp区别:用rsync做文件的复制要比scp的速度快,rsync只对差异文件做更新。scp是把所有文件都复制过去。
yum install rsync -y
# 命令 选项参数 要拷贝的文件路径/名称 目的用户@主机:目的路径/名称 rsync -av $pdir/$fname $user@hadoop$host:$pdir/$fname
把hadoop91机器上的/opt/software目录同步到hadoop92服务器的root用户下的/opt/目录
rsync -av /opt/software/ hadoop92:/opt/software
1、需求:循环复制文件到所有节点的相同目录下
2、需求分析:
rsync -av /opt/module root@hadoop93:/opt/
xsync 要同步的文件名称
/home/hisign/bin
这个目录下存放的脚本,hisign用户可以在系统任何地方直接执行。3、脚本实现
在/home/hisign
目录下创建bin
目录,并在bin目录下xsync创建文件,文件内容如下:
mkdir -p /home/hisign/bin cd /home/hisign/bin # 新建脚本 vim xsync
在该文件中编写如下代码
#!/bin/bash #1 获取输入参数个数,如果没有参数,直接退出 pcount=$# if ((pcount==0)); then echo no args; exit; fi #2 获取文件名称 p1=$1 fname=`basename $p1` echo fname=$fname #3 获取上级目录到绝对路径 pdir=`cd -P $(dirname $p1); pwd` echo pdir=$pdir #4 获取当前用户名称 user=`whoami` #5 循环 for((host=91; host<94; host++)); do echo ------------------- hadoop$host -------------- rsync -av $pdir/$fname $user@hadoop$host:$pdir done
chmod 777 xsync
xsync /home/hisign/bin
注意:如果将xsync放到/home/hisign/bin
目录下仍然不能实现全局使用,可以将xsync移动到/usr/local/bin
目录下。
sudo mv /home/hisign/bin/xsync /usr/local/bin
lrzsz
XShell中支持,MobaXterm不支持
# 安装 lrzsz yum install lrzsz -y
注意:该软件只是用于小文件,比较大的文件还是老老实实用ftp工具吧
lrzsz是Linux/Unix同Windows进行ZModem文件传输的命令行工具。优点就是不用再开一个sftp工具登录上去上传下载文件。
rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到Linux服务器
sz:将选定的文件发送(send)到本地机器
net-tools
ifconfig不存在问题
# 安装 net-tools yum install net-tools -y
vim
# 安装 net-tools yum install vim -y
wget
# 安装 wget yum install wget -y
wget http://www.linuxde.net/testfile.zip
以下的例子是从网络下载一个文件并保存在当前目录,在下载的过程中会显示进度条,包含(下载完成百分比,已经下载的字节,当前下载速度,剩余下载时间)。
wget -O wordpress.zip http://www.linuxde.net/download.aspx?id=1080
wget默认会以最后一个符合/
的后面的字符来命名,对于动态链接的下载通常文件名会不正确。
错误:下面的例子会下载一个文件并以名称download.aspx?id=1080
保存:
wget http://www.linuxde.net/download?id=1
即使下载的文件是zip格式,它仍然以download.php?id=1080
命令。
正确:为了解决这个问题,我们可以使用参数-O
来指定一个文件名:
wget -O wordpress.zip http://www.linuxde.net/download.aspx?id=1080
wget -i filelist.txt
首先,保存一份下载链接文件:
cat > filelist.txt url1 url2 url3 url4
接着使用这个文件和参数-i
下载。