Linux - 系统配置
下载
以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源
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那样,在修改了规则后必须得全部刷新才可以生效;
- firewalld在使用上要比iptables人性化很多,即使不明白“五张表五条链”而且对TCP/IP协议也不理解也可以实现大部分功能。
firewalld跟iptables比起来,不好的地方是每个服务都需要去设置才能放行,因为默认是拒绝。而iptables里默认是每个服务是允许,需要拒绝的才去限制。
centos7
开始默认用的是firewalld
,这个是基于iptables
的,虽然有iptables
的核心,但是iptables
的服务是没安装的。
firewalld
# 安装防火墙
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
iptables
# 关闭防火墙
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!
SSH免密登录
原理:
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 安全拷贝
- 定义:
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主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。
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
xsync 集群分布脚本
1、需求:循环复制文件到所有节点的相同目录下
2、需求分析:
- rsync命令原始拷贝:
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
- 修改脚本 xsync 具有执行权限
chmod 777 xsync
- 调用脚本形式: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
下载。