Linux服务配置03

2019-06-11-Linux服务配置03

目录

1. 使用Squid部署代理缓存服务

1.1 Squid 替代用户向网站服务器请求页面数据并进行缓存,当用户再次再请求相同数据,则可以将存储服务器本地数据交付给用户,减少了用户等待时间,支持HTTP、FTP、SSL等多种协议

1.2 Squid分为正向代理反向代理:

  • 正向代理: 用户(局域网)-> Squid-> 网站资源,以及基于ACL功能对用户访问网站进行限制,具体分为标准代理模式 与 透明代理模式。
    • 标准模式: 把网站数据缓存到本地服务器上,提高数据资源再次访问时的效率,但用户必须填写代理服务器IP与端口;
    • 透明模式: 不需要填写代理IP和端口号,是由DHCP服务器将网络配置信息分配给客户端主机;
  • 反向代理:让多节点主机反向缓存网站数据 服务器机房(多节点主机->Squid服务器->Internet->公网用户)

1.4 测试设备:

  • Squid服务器(内网卡:仅主机模式192.168.37.10,外网卡:桥接模式DHCP)
  • Windows客户端主机(网卡:仅主机模式192.168.37.20)

1.5 文件配置

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@xy ~]# vim /etc/squid/squid.conf  
http_port 312 # 监听端口 ✔
cache_mem 64M # 内存缓冲区
cache_dir ufs /var/spool/squid 2000 16 256 # 硬盘缓冲区
cache_effective_user squid # 设置缓存的有效用户
cache_effective_group squid # 设置缓存有效用户组
dns_nameservers [IP] # 一般不设置,用服务器默认的DNS
cache_access_log /var/log/squid/access.log # 访问日志文件的保存路径
cache_log /var/log/squid/cache.log # 缓存日志文件的保存路径
visible_hostname xy.com # 设置Squid服务器名称
[root@xy ~]# systemctl restart squid
[root@xy ~]# systemctl enable squid
ln -s '/usr/lib/systemd/system/squid.service' '/etc/systemd/system/multi-user.target.wants/squid.service'

1.6 标准正向代理(IP: 192.168.37.10:3128)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[root@xy ~]# semanage port -l | grep squid_port_t           # /etc/squid/squid.conf    
squid_port_t tcp 3128, 3401, 4827
squid_port_t udp 3401, 4827
[root@xy ~]# semanage port -a -t squid_port_t -p tcp 10000 # http_port 10000
squid_port_t tcp 10000, 3128, 3401, 4827
squid_port_t udp 3401, 4827
[root@xy ~]# vim /etc/squid/squid.conf # Squid 提供的ACL功能
acl client src = 192.168.37.20 # 仅允许192.168.37.20使用Squid提供的代理服务
http_access allow client
http_access deny all
[root@xy ~]# vim /etc/squid/squid.conf # 禁止所有客户端访问网址包含liunx关键字的网站
acl deny_keyword url_regex -i linux
http_access deny deny_keyword
[root@xy ~]# vim /etc/squid/squid.conf # 禁止所有客户端访问某个特定网站
acl deny_url url_regex https://www.baidu.com
http_access deny deny_url
[root@xy ~]# vim /etc/squid/squid.conf # 禁止员工在企业网内部下载带有某些后缀的文件
acl badfile urlpath_regex -i \.rar$ \.avi$
http_access deny badfile

1.7 透明模式

没有配置DHCP服务的话,设置客户端地址192.168.10.20

1
[root@xy ~]# iptables -F

实现DNS地址解析服务53端口的数据转发功能(SNAT), -o 匹配外网网卡流出的流量

1
2
3
4
5
6
7
8
9
[root@xy ~]# iptables -t nat -A POSTROUTING -p udp --dport 53 -o eno33554968 -j MASQUERAD
[root@xy ~]# echo "net.ipv4.ip_forwrad=1" >> /etc/sysctl.conf # 开启路由转发功能
[root@xy ~]# sysctl -p
[root@xy ~]# net.ipv4.ip_forward = 1
[root@xy ~]# vim /etc/squid/squid.conf
http_port 3128 transparent # 59, 开启透明模式
cache_dir ufs /var/spool/squid 100 16 256 # 62
[root@xy ~]# squid -k parse # 检测主配置文件是否有错
[root@xy ~]# squid -z # 对服务程序透明化进行初始化

SNAT 设置对网站80端口请求转发至Squid服务器本地3128端口

1
2
[root@xy ~]# iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128  
[root@xy ~]# iptables -t nat -A POSTROUTING -s 192.168.37.0/24 -o eno33554968 -j SNAT --to 桥接网卡IP # -o 匹配外网网卡流出的流量交给 外网卡

1.8 反向代理模式

1
2
3
[root@xy ~]# vim /etc/squid/squid.conf  	# 反向代理配置  
http_port 桥接网卡 IP:80 vhost # 59
cahe_peer 网站服务器 IP parent 80 0 originserver # 60

2. 使用iSCSI(Internet Small Computer System Interface)

  • IDE(成熟稳定, 价格便宜并行传输接口)
  • SATA(传输速度更快, 数据校验更完整串行传输接口)
  • SCSI(计算机和硬盘, 光驱等设备间系统级接口通用标准; 系统资源占用率低, 转速快, 传输速度快)
  • 基于TCP/IP协议和SCSI接口协议的iSCSI是将SCSI接口与以太网技术结合的新型存储技术,可以来在网络中传输SCSI接口命令和数据;
  • 需要网卡传输, iSCSI-HBA网卡, 该网卡连接SCSI接口或者FC(光纤通道)总线和内存, 用于主机之间交换存储数据;

2.1 配置iSCSI服务端

2.1.2 创建RAID 5磁盘阵列:

1
2
[root@xy ~]# mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde    
[root@xy ~]# mdadm -D /dev/md0 # 查看设备详细信息

2.1.3 安装iSCSI服务端(192.168.37.1):

1
2
3
4
[root@xy ~]# yum -y install targetd targetcli      
[root@xy ~]# systemctl restart targetd
[root@xy ~]# systemctl enable targetd
ln -s '/usr/lib/systemd/system/targetd.service' '/etc/systemd/system/multi-user.target.wants/targetd.service'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
[root@xy ~]# targetcli       	# 交互式配置界面    
Warning: Could not load preferences file /root/.targetcli/prefs.bin.
targetcli shell version 2.1.fb34
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type 'help'.

+++++++++++++++++++++++++++加入md0阵列到共享设备资源池++++++++++++++++++++++++++++
/> ls
o- / ..................................................................... [...]
o- backstores .......................................................... [...]
| o- block .............................................. [Storage Objects: 0]
| o- fileio ............................................. [Storage Objects: 0]
| o- pscsi .............................................. [Storage Objects: 0]
| o- ramdisk ............................................ [Storage Objects: 0]
o- iscsi ........................................................ [Targets: 0]
o- loopback ..................................................... [Targets: 0]
/> cd /backstores/block # 共享设备位置
/backstores/block> create disk0 /dev/md0
Create block storage object disk0 using /dev/md0.
/backstores/block> cd
/> ls
o- / ..................................................................... [...]
o- backstores .......................................................... [...]
o-disk0 ........................ [/dev/md0 (40.0GiB write-thru deactivated)] #
| o- block .............................................. [Storage Objects: 0]
| o- fileio ............................................. [Storage Objects: 0]
| o- pscsi .............................................. [Storage Objects: 0]
| o- ramdisk ............................................ [Storage Objects: 0]
o- iscsi ........................................................ [Targets: 0]
o- loopback ..................................................... [Targets: 0]

+++++++++++++++++++++++创建iSCSI target名称及配置共享资源+++++++++++++++++++++++++
/> cd iscsi # 创建iSCSI target名称及配置共享资源
/iscsi> create #
Created target iqn.2003-01.org.linux-iscsi.xy.x8664:sn.ca5dd98d2e7d.
Created TPG 1.
/iscsi> cd iqn.2003-01.org.linux-iscsi.xy.x8664:sn.ca5dd98d2e7d/
/iscsi/iqn.20....ca5dd98d2e7d> ls
o- iqn.2003-01.org.linux-iscsi.xy.x8664:sn.ca5dd98d2e7d .............. [TPGs: 1]
o- tpg1 ............................................... [no-gen-acls, no-auth]
o- acls .......................................................... [ACLs: 0]
o- luns .......................................................... [LUNs: 0]
o- portals .................................................... [Portals: 0]
/iscsi/iqn.20....ca5dd98d2e7d> cd tpg1/luns #
/iscsi/iqn.20...e7d/tpg1/luns> create /backstores/block/disk0 #
Create LUN 0.

++++++++++++++++++++++++++++++设置访问控制列表++++++++++++++++++++++++++++++++++
/iscsi/iqn.20...e7d/tpg1/luns> cd..
/iscsi/iqn.20...e7d/tpg1/luns> cd acls # 设置访问控制列表
/iscsi/iqn.20...d98d2e7d/tpg1> create iqn.2003-01.org.linux-iscsi.xy.x8664:sn.ca5dd98d2e7d:client**
Create Node ACL for iqn.2003-01.org.linux-iscsi.xy.x8664:sn.ca5dd98d2e7d:client
Create LUN 0.

++++++++++++++++++++++++++++设置服务的监听IP及端口++++++++++++++++++++++++++++++++
/iscsi/iqn.20...e7d/tpg1/luns> cd ..
/iscsi/iqn.20...d98d2e7d/tpg1> cd portals
/iscsi/iqn.20.../tpg1/portals> create 192.168.37.10
Using default IP port 3260
Created network portal 192.168.37.10:3260.

+++++++++++++++++++++++++++++检测配置信息++++++++++++++++++++++++++++++++++++++++
/iscsi/iqn.20.../tpg1/portals> ls # 检测配置信息
o- / ..................................................................... [...]
o- backstores .......................................................... [...]
| o- block .............................................. [Storage Objects: 0]
| | o-disk0 ...................... [/dev/md0 (40.0GiB write-thru deactivated)] #
| o- fileio ............................................. [Storage Objects: 0]
| o- pscsi .............................................. [Storage Objects: 0]
| o- ramdisk ............................................ [Storage Objects: 0]
o- iscsi ........................................................ [Targets: 1]
| o- iqn.2003-01.org.linux-iscsi.xy.x8664:sn.ca5dd98d2e7d .......... [TPGs: 1] #
| o- tpg1 ........................................... [no-gen-acls, no-auth]
| o- acls ...................................................... [ACLs: 0]
| | o- iqn.2003-01.org.linux-iscsi.xy.x8664:sn.ca5dd98d2e7d:client...... #
[Mapped LUNs: 1]
| | o- mapped_lun0 ............................... [lun0 block/disk0 (rw)] #
o- luns .................................. [LUNs: 1]
| o -lun0 ............................ [block/disk0 (dev/md0)]
| o- portals ........................... [Portals: 1]
| o- 192.168.37.10:3260 .............. [OK] #
o- loopback ................................ [Targets: 0]
/> exit
Global pref auto_save_on_exit=true
Last 10 configs saved in /etc/target/backup.
Configuration saved to /etc/target/saveconfig.json
++++++++++++++++++++++++++++++++++++++结束++++++++++++++++++++++++++++++++++++++

[root@xy ~]# firewall-cmd --permanent --add-port=3260/tcp
success
[root@xy ~]# firewall-cmd --reload
success

2.1.4 配置Linux iSCSI客户端

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@xy ~]# yum install iscsi-initiator-utils
[root@xy ~]# vim /etc/iscsi/initiatorname.iscsi
Initiatorname=iqn.2003-01.org.linux-iscsi.xy.x8664:sn.ca5dd98d2e7d:clien
[root@xy ~]# iscsi -m discovery -t st -p 192.168.37.10 # 发现
192.168.37.10:3260,1 iqn.2003-01.org.linux-iscsi.xy.x8664:sn.ca5dd98d2e7d
[root@xy ~]# iscsiadm -m mode -T iqn.2003-01.org.linux-iscsi.xy.x8664:sn.ca5dd98d2e7d -p 192.168.37.10 --login # 登陆
[root@xy ~]# file /dev/sdb
/dev/sdb: block specile
[root@xy ~]# mkfs.xfs /dev/sdb # 格式化
[root@xy ~]# mkdir /iscsi
[root@xy ~]# mount /dev/sdb /iscsi # 挂载
[root@xy ~]# blkid | grep /dev/sdb
/dev/sdb: UUID="b6b6d578-3ba5-450b-b967-d1a81a71d600" TYPE="xfs"
[root@xy ~]# /etc/fstab
UUID="b6b6d578-3ba5-450b-b967-d1a81a71d600 /iscsi xfs defaults,_netdev 0 0
[root@xy ~]# iscsiadm -u # 卸载网络设备

2.1.5 配置Windows iSCSI客户端

  • 系统安全->管理工具->iSCSI发起程序->目标填写iSCSI服务端IP->快速连接->配置->更改->填写服务端ACL所定义的名称

3. 使用MariaDB数据库管理系统

1
2
3
4
[root@xy ~]# yum -y install mariadb mariadb-server   
[root@xy ~]# systemctl restart mariadb
[root@xy ~]# systemctl enable mariadb
ln -s '/usr/lib/systemd/system/mariadb.service' '/etc/systemd/system/multi-user.target.wants/mariadb.service'

3.1 数据库初始化

命令 作用 eg.
set 设置密码 set password=password(‘123456’);
show 展示数据库, 表, 权限 show databases;
show tables;
show grants for anyue@localhost;
use 指定使用数据库 use anyue;
grant 授予权限 grant 权限 on 库名.表名 to 用户名@主机名;
revoke 移除权限 revoke 权限 on 库名.表名 from 用户名@主机名;
create 创建数据库, 用户, 表单 create database anyue;
create user anyue@localhost identified by ‘123456’;
create table mybook (name char(15),price int,pages int);
insert 增(增加表单数据) insert into mybook(name,price,pages) values(‘ES’,’60’,’10’);
update 改(改动表单数据) update 表单 set attr=新值 where attr=初值;
update mybook set price=55;
delete 删(删除表单数据) delete form 表单名 where atrr=值;
select 查(表单数据) select user,host,password from user where=’anyue’;
select * from mybook where price>75;
select name,price from mybook;
describe 描述表单(desc) desc mybook;
drop 删数据库,表,用户 drop anyue;
alter 修改表描述 alter table 表单名
alter table mybook add(字段名1 字段类型1,…);
a lter table mybook modify 字段名1 字段类型1;
alter table mybook drop 字段名;
alter table mybook 原表名 rename to 新表名;
mysqldump 备份数据库 mysqldump -uroot -p anyue >/root/anyue.dump
还原数据库 mysql -uroot -p anyue </root/anyue.dump
like 模糊查询 % 或者 _
1
2
3
4
5
6
[root@xy ~]# mysql: emp,dept,salgrate
[root@xy ~]# mysql_secure_installation # mariaDB初始化
[root@xy ~]# firewall-cmd --permanent --add-service=mysql
success
[root@xy ~]# firewall-cmd --reload
success

3.2 基本操作

mysql参考

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[root@xy ~]# mysql -uroot -p         # 进入数据库  
MariaDB [(none)]> show databases; # show databses 显示数据库
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.03 sec)
MariaDB [(none)]> set password = password('123456'); # 修改密码
MariaDB [(none)]> alter user 'root'@'localhost' identified by '123456';
MariaDB [(none)]> alter database testdb character set utf8;
MariaDB [(none)]> create user anyue@localhost indentified by '123456';
Query OK, 0 rows affected (0.00 sec)
# 创建用户 create user 用户名@主机名 identified by 'PASSWORD'
MariaDB [(none)]> use mysql;
MariaDB [mysql]> select user,host,password from user where user='anyue'; # 选择用户
+-------+-----------+-------------------------------------------+
| user | host | password |
+-------+-----------+-------------------------------------------+
| anyue | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-------+-----------+-------------------------------------------+
1 row in set (0.00 sec)
MariaDB [(none)]> quit;
Bye

3.3 授予权限操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
[root@xy ~]# mysql -uanyue -p       # mysql -uusername -p  
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
+--------------------+
1 row in set (0.01 sec)
MariaDB [(none)]> quit;
Bye

+ GRANT 权限 ON 数据库.表单名称 TO 账户名@主机名 # 授予权限 GRANT
+ GRANT 权限 ON 数据库.* TO 账户名@主机名
+ GRANT 权限 ON *.* TO 账户名@主机名
+ GRANT 权限1,权限2 ON 数据库.* TO 账户名@主机名
+ GRANT ALL PRIVILEGES ON *.* TO 账户名@主机名

[root@xy ~]# mysql -u root -p
MariaDB [(none)]> grant select,update,delete,insert on mysql.user to anyue@localhost; # 赋予anyue权限
MariaDB [(none)]> show grants for anyue@localhost; # 查看anyue权限
+-------------------------------------------------------------------------------------------------------------+
| Grants for anyue@localhost |
+-------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'anyue'@'localhost' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' |
| GRANT SELECT, INSERT, UPDATE, DELETE ON mysql.user TO 'anyue'@'localhost' |
+-------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
MariaDB [(none)]> quit
Bye

3.4 移除权限操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
[root@xy ~]# mysql -uanyue -p 
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
+--------------------+
2 rows in set (0.01 sec)
MariaDB [(none)]> use mysql;
MariaDB [mysql]> show tables;
+-----------------+
| Tables_in_mysql |
+-----------------+
| user |
+-----------------+
1 row in set (0.01 sec)
MariaDB [(none)]> quit;
Bye
---

[root@xy ~]# mysql -uroot -p
MariaDB [(none)]> use mysql;
MariaDB [mysql]> revoke select,update,delete,insert on mysql.user from anyue@localhost; # 移除对anyue的授权 REVOKE
MariaDB [(none)]> revoke select,update,insert,delete on mysql.user from xy@localhost;
MariaDB [(none)]> revoke all privileges on *.* from anyue@localhost;
Query OK, 0 rows affected (0.01 sec)
MariaDB [mysql]> show grants for anyue@localhost;
+-------------------------------------------------------------------------------------------------------------+
| Grants for anyue@localhost |
+-------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'anyue'@'localhost' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' |
+-------------------------------------------------------------------------------------------------------------+
1 row in set (0.01 sec)
MariaDB [(none)]> quit;
Bye

3.5 数据库 表单操作

  • CREATE DATABASE 数据库名称
  • DESCRIBE 表单名称(DESC)
  • UPDATE 表单名称 SET attribute=新值 WHERE attribute=旧值
  • USE 数据库名称
  • SHOW databases # 显示当前已有的数据库
  • SHOW tables # 显示当前数据库中的表单
  • SELECT * FROM 表单名称
  • DELETE FROM 表单名 WHERE attribute=值
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
[root@xy ~]# mysql -u root -p 	
MariaDB [(none)]> create database mybook; # 创建数据库xy
Query OK, 1 row affected (0.01 sec)
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| mybook |
+--------------------+
4 rows in set (0.02 sec)

MariaDB [(none)]> use mybook;
Database changed
MariaDB [xy]> create table mybook (name char(15),price int,pages int); # 创建表单
Query OK, 0 rows affected (0.03 sec)
MariaDB [xy]> desc mybook; # desc mybook;
+-------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| name | char(15) | YES | | NULL | |
| price | int(11) | YES | | NULL | |
| pages | int(11) | YES | | NULL | |
+-------+----------+------+-----+---------+-------+
3 rows in set (0.02 sec)
MariaDB [xy]> insert into mybook(name,price,pages) values('MC','60','518'); # 往表单mybook插入数据
MariaDB [xy]> select * from mybook; # 选择表单内容
+------------+-------+-------+
| name | price | pages |
+------------+-------+-------+
| MC | 60 | 518 |
+------------+-------+-------+
1 row in set (0.00 sec)

MariaDB [xy]> update mybook set price=55; # 更新表单内容
Query OK, 1 rows affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
MariaDB [xy]> select name,price from mybook;
+------------+-------+
| name | price |
+------------+-------+
| MC | 50 |
+------------+-------+
1 rows in set (0.01 sec)
MariaDB [xy]> delete from mybook;
Query OK, 1 rows affected (0.01 sec)
MariaDB [xy]> selete * from mybook;
Empty set (0.01 sec)
MariaDB [(none)]> quit;
Bye

3.6 数据库where命令

=、<>或!=、>、<、>= 大于或等于、<= 小于或等于
BETWEEN 在某个范围内、 LINK 搜索一个例子、IN 在列中搜索多个值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
[root@xy ~]# mysql -u root -p
MariaDB [xy]> select * from mybook;
+-------------+-------+-------+
| name | price | pages |
+-------------+-------+-------+
| ShenQu | 58 | 800 |
| MC | 60 | 518 |
| Baoliandeng | 70 | 65 |
| xy | 45 | 83 |
| xy1 | 45 | 83 |
+-------------+-------+-------+
5 rows in set (0.00 sec)
MariaDB [xy]> select * from mybook where price>45;
+-------------+-------+-------+
| name | price | pages |
+-------------+-------+-------+
| ShenQu | 58 | 800 |
| MC | 60 | 518 |
| Baoliandeng | 70 | 65 |
+-------------+-------+-------+
3 rows in set (0.00 sec)
MariaDB [xy]> select * from mybook where price!=60;
+-------------+-------+-------+
| name | price | pages |
+-------------+-------+-------+
| ShenQu | 58 | 800 |
| Baoliandeng | 70 | 65 |
| xy | 45 | 83 |
| xy1 | 45 | 83 |
+-------------+-------+-------+
4 rows in set (0.01 sec)
MariaDB [(none)]> quit;
Bye

3.7 数据库的备份mysqldump

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@xy ~]# mysqldump -uroot -p xy > /root/xy.dump  
Enter password:
[root@xy ~]# mysql -uroot -p
MariaDB [(none)]> drop database xy;
Query OK, 1 row affected (0.03 sec)
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.01 sec)
MariaDB [(none)]> create database xy;
Query OK, 1 row affected (0.01 sec)
MariaDB [(none)]> quit;
Bye

3.8 数据库还原

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[root@xy ~]# mysql -uroot -p xy < /root/xy.dump   # xy 是 数据库,不是密码
Enter password:
[root@xy ~]# mysql -uroot -p
MariaDB [(none)]> use xy;
MariaDB [xy]> show tables;
+--------------+
| Tables_in_xy |
+--------------+
| mybook |
+--------------+
1 row in set (0.00 sec)
MariaDB [xy]> desc mybook;
+-------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| name | char(15) | YES | | NULL | |
| price | int(11) | YES | | NULL | |
| pages | int(11) | YES | | NULL | |
+-------+----------+------+-----+---------+-------+
3 rows in set (0.01 sec)
MariaDB [(none)]> quit;
Bye

练习:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[root@Xingyue ~]# mysql -uroot -p  
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)
MariaDB [(none)]> grant all privileges on *.* to anyue@localhost identified by '123456'
MariaDB [(none)]> grant all privileges on *.* to root@localhost identified by '123456'
MariaDB [(none)]> grant all privileges on *.* to root@127.0.0.1 identified by '123456'
MariaDB [(none)]> use mysql;
MariaDB [(none)]> select user,host,password from mysql.user;
+---------+-----------+-------------------------------------------+
| user | host | password |
+---------+-----------+-------------------------------------------+
| root | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| root | 127.0.0.1 | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| root | ::1 | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| anyue | 127.0.0.1 | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+---------+-----------+-------------------------------------------+
4 rows in set (0.00 sec)

binlog日志

1
2
3
4
[root@xy ~]# vim /etc/my.cnf 
log-bin=mysql-bin # 开启二进制日志, 只记录增删改
[root@xy ~]# mysqlbinlog --start-datetime 'Y-M-D H:M:S' --stop-datetime 'Y-M-D H:M:S' |mysql -uroot -p
[root@xy ~]# mysqlbinlog --start-position --stop-position |mysql -uroot -p

MySQL主从备份(备份,负载均衡):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[root@xy ~]# vim /etc/my.cnf  
主: 192.168.10.10
[mysqld]
log-bin=mysql.bin
server-id=10
mysql> grant replication slave on *.* to slave@'192.168.10.20' identified by '123456';
mysql> show master status; # replication 拷贝
+------------------+----------+--------------+-------------------+
| Fiel | Position | Binlog_Do_DB | Binglog_Ignore_DB |
+------------------+----------+--------------+-------------------+
| mysql-bin.000003 | 257 | | |
+------------------+----------+--------------+-------------------+
---

备: 192.168.10.20
[mysqld]
log-bin=mysql.bin
server-id=20
mysql> change master to
-> master_user='slave',
-> master_password='123456',
-> master_host='192.168.10.10',
-> master_log_file='mysql-bin.000003',
-> master_log_pos=257;
mysql> start slave;
mysql> show slave status;

MySQL主主备份(均摊写压力):

在主从备份的基础上如下操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
[root@xy ~]# vim /etc/my.cnf  
主: 192.168.10.10
[mysqld]
log-bin=mysql.bin
server-id=10
replace-do-db=test
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
auto-increment-increment=2
auto=increment-offset=1

mysql> change master to
-> master_user='slave',
-> master_password='123456',
-> master_host='192.168.10.20',
-> master_log_file='mysql-bin.000004',
-> master_log_pos=259;
mysql> start slave;
mysql> show slave status\G;

备: 192.168.10.20
[mysqld]
log-bin=mysql.bin
server-id=20
replace-do-db=test
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
auto-increment-increment=2
auto=increment-offset=1
mysql> grant replication slave on *.* to slave@'192.168.10.10' identified by '123456';
mysql> show master status;

4.1 使用PXE+Kickstat无人值守安装服务

  • PXE(Preboot eXecute Environment)—预启动执行环境,可以让计算机通过网络来启动操作系统,主要用于在无人值守安装系统中引导客户端安装Linux操作系统
  • Kickstat无人值守安装方式,预先把手工填写参数保存为ks.cfg文件,安装过程自动匹配Kickstat生成的文件
  • DHCP + vsftp + tftp + Kickstart

4.2 DHCP服务程序配置 (192.168.37.10 无人值守系统服务器IP)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[root@xy ~]# yum install dhcp
[root@xy ~]# vim /etc/dhcp/dhcpd.conf # /usr/share/doc/dhcp*/dhcpd.conf.example
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
#
allow booting;
allow bootp;
ddns-update-style interim;
ignore client-updates;
subnet 192.168.37.0 netmask 255.255.255.0 { # 填写网段
option subnet-mask 255.255.255.0
option domain-name-server 192.168.37.10;
range dynamic-bootp 192.168.37.100 192.168.37.200;
default-lease-time 21600;
max-server 43200;
next-server 192.168.37.10; # tftp server 的 IP
filename"pxelinux.0"; # 客户机获取IP 主动获取引导驱动文件
}
[root@xy ~]# systemctl restart dhcpd
[root@xy ~]# systemctl enable dhcpd
ln -s '/usr/lib/systemd/system/dhcpd.service' '/etc/systemd/system/multi-user.target.wants/dhcpd.service'

4.3 TFTP服务程序配置,为客户机提供引导及驱动文件,默认占用端口 69/UDP

1
2
3
4
5
6
7
[root@xy ~]# yum install tftp-server
[root@xy ~]# vim /etc/xinetd.d/tftp
disable = no
[root@xy ~]# firewall-cmd --permanent --add-port=69/udp
success
[root@xy ~]# firewall-cmd --reload
success

4.4 SYSLinux服务程序配置, 提供引导加载服务程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@xy ~]# yum install syslinux   # /usr/share/syslinux 引导文件 
[root@xy ~]# cd /var/lib/tftpboot/
[root@xy tftpboot]# cp /usr/share/syslinux/pxelinux.0 .
[root@xy tftpboot]# cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} .
[root@xy tftpboot]# cp /media/cdrom/isolinux/{vesamenu.c32,boot.msg} .
[root@xy tftpboot]# mkdir pxelinux.cfg
[root@xy tftpboot]# cp /media/cdrom/isolinux/isolinux.cfg pxelinux.cfg/default
[root@xy tftpboot]# ls
boot.msg initrd.img pxelinux.0 pxelinux.cfg vesamenu.c32 vmlinuz

[root@xy tftpboot]# vim /pxelinux.cfg/default
default linux # 1行 vesamenu.c32
label linux # 61行
menu label ^Install Red Hat Enterprise Linux 7.0
kernel vmlinuz
append initrd=initrd.img inst.stage2=hd:LABEL=RHEL-7.0\x20Server.x86_64 quiet
# 64行改为
append initrd=initrd.img inst.stage2=ftp://192.168.37.10 ks=ftp://192.168.37.10/pub/ks.cfg quiet

4.5 vsftp服务程序配置,光盘镜像通过FTP协议传输

1
2
3
4
5
6
7
8
9
10
[root@xy ~]# yum install vsftpd  
[root@xy ~]# systemctl restart vsftpd
[root@xy ~]# systemctl enable vsftpd
ln -s '/usr/lib/systemd/system/vsftpd.service' '/etc/systemd/system/multi-user.target.wants/vsftpd.service'
[root@xy ~]# cp -r /media/cdrom/* /var/ftp
[root@xy ~]# firewall-cmd --permanent --add-service=ftp
success
[root@xy ~]# firewall-cmd --reload
success
[root@xy ~]# setsebool -P ftpd_connect_all_unreserved=on

4.6 创建应答文件Kickstart

1
2
3
4
5
6
7
8
[root@xy ~]# cp ~/anaconda-ks.cfg /var/ftp/pub/ks.cfg  
[root@xy ~]# chmod +r /var/ftp/pub/ks.cfg
[root@xy ~]# vim /var/ftp/pub/ks.cfg
url --url=ftp://192.168.37.10 # 1行
timezone Aisa/Shanghai --isUtc # 21行
cleanpart --all --initlable # 29行

[root@xy ~]# yum istall system-config-kickstart # 图形化Kickstart应答文件生成工具
  • DHCP: 给未安装操作系统的机子分配静态IP, 并加载引导驱动文件 pxelinux.0;
  • tftp(基于 UDP 文件传输协议): 为客户机提供引导及驱动文件;
  • SYSLinux: 复制引导文件 pxelinux.0 到TFTP 默认目录中, 创建 /pxelinux.cfg/defalut 文件;
  • vsftp: 将光盘镜像挂载到 media/cdrom, 复制到 vsftp 工作目录;
  • 创建 Kickstart 应答文件: /var/ftp/pub/ks.cfg

4.1 Cobbler 无人值守安装服务

1
2
[root@localhost ~]# systemctl disable firewalld.service  
[root@localhost ~]# setenforce 0

4.2 安装配置Cobbler

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[root@xy ~]# yum -y instal epel-release   
[root@xy ~]# yum install cobbler cobbler-web pykickstart debmirror
[root@xy ~]# systemctl restart httpd # 共享镜像
[root@xy ~]# systemctl enable httpd
[root@xy ~]# systemctl restart cobblerd
[root@xy ~]# systemctl enable cobblerd
[root@xy ~]# netstat -antp | grep 25151
[root@xy ~]# vim /etc/cobbler/settings
server: 10.10.10.11 # 指定TFTP服务器地址
next_server: 10.10.10.11 # 指定Cobbler服务器地址
manage_dhcp: 1 # 把对dhcp管理服务开启
[root@xy ~]# cobbler get-loaders
[root@xy ~]# systemctl enable rsyncd
[root@xy ~]# systemctl restart rsyncd
[root@xy ~]# vim /etc/debmirror.conf # 安装操作系统类型
@dists="sid"; # 注释
#@arches="i386"; # 注释
[root@xy ~]# openssl passwd -l -salt $(openssl rand -hex 4) # 生成加密字符串
[root@xy ~]# vim /etc/cobbler/settings
default_passsword_cryptes:"加密字符串"
[root@xy ~]# yum install cman fence-agents

4.3配置tftp服务

1
2
3
4
5
6
7
8
9
10
[root@localhost ~]# yum install xinetd  
[root@xy ~]# vim /etc/xinetd.d/tftp # tftp基于xinetd服务
disabled=no # 开启tftp服务
[root@xy ~]# systemctl start xinetd
[root@xy ~]# systemctl enable xinetd
[root@xy ~]# systemctl restart tftp
[root@xy ~]# systemctl enable tftp
[root@xy ~]# systemctl restart cobblerd
[root@xy ~]# cobbler sync # 同步配置文件
[root@xy ~]# cobbler check

4.4配置DHCP服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[root@xy ~]# yum install dhcp    
[root@xy ~]# vim /etc/dhcp/dhcpd.conf
option domain-name "chinasoft.com"; # 域
option domain-name-servers 114.114.114.114,8.8.8.8;
default-lease-time 43200;
max-server 86400;
log-facility local 7;
subnet 10.10.10.0 netmask 255.255.255.0 { # 填写网段
range dynamic-bootp 10.10.10.100 10.10.10.200; # 地址池
option routers 10.10.10.11 # 网关
option subnet-mask 255.255.255.0 # 掩码
option domain-name-servers 10.10.10.2; #修改DNS
}
next-server 10.10.10.11; # tftp server 的 IP
filename"pxelinux.0"; # 客户机获取IP 主动获取引导驱动文件
[root@xy ~]# systemctl restart dhcpd
[root@xy ~]# systemctl enable dhcpd
[root@xy ~]# systemctl restart cobblerd
[root@localhost ~]# cobbler sync # 同步生成DHCP配置文件

4.5导入镜像

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[root@xy ~]# mkdir /mnt/cdrom/ && mount -t iso9660 /dev/cdrom /mnt/cdrom   
[root@localhost ~]# cobbler import --path=/mnt/cdrom --name="CentOS7.6"
[root@localhost ~]# cobbler import --path=/mnt/cdrom --name="CentOS6.8"
10.10.10.11/cobbler
/var/www/cobbler/ks_mirror/CentOS-7-x86_64 # 导入的镜像文件存放的位置
/var/lib/cobbler/kickstarts # 应答文件存放位置

[root@xy ~]# cobbler distro list # cobbler profile list
centos7.6-x86_64
centos6.8-x86_64
[root@xy ~]# cobbler profile remove --name=centos7.6-x86_64 # 删除自带应答文件
[root@xy ~]# mv centos7-x86_64.cfg centos6-x86_64.cfg /var/lib/cobbler/kickstarts
#Use NFS installation Media
url --url="image link"
#Root password
rootpw --iscrypted $default_password_crypted
[root@xy ~]# cobbler profile add --name=centos6.5-x86_67-basic --distro=centos6.5-x86_64 --kickstart=/var/lib/cobbler/kickstart/centos6.5-x86_64.cfg # 匹配
[root@xy ~]# cobbler profile list
centos6.8-basic
centos7.6-basic
[root@xy ~]# cobbler sync

Linux服务配置03
https://anyu967.github.io/posts/c7601bf8.html
作者
anyu967
发布于
2019年6月11日
许可协议