yanyx's blog


  • Home

  • Tags

  • Archives

通过mock来构建rpm包

Posted on 2018-09-25 | | Visitors:

概述

mock是一个构建rpm包的工具,你可以使用mock来编译不同系统(CentOS,RedHat和Fedora)版本的rpm包。
相比通过rpmbuild来构建rpm包,使用mock通过使用chroot技术,可以在一个干净的环境中来构建rpm包。

安装mock

1
2
3
yum install epel-release -y

yum install mock -y

需要运行mock的用户都需要添加到mock这个组里,可以通过usermod来把用户添加到mock组。

1
usermod -a -G mock <user>

构建准备

使用mock来构建rpm包,需要要有source rpm。
如果有一个spec文件,则可以通过rpmbuild来构建source rpm

1
rpmbuild -bs xxx.spec

当然,你也可以直接下载source rpm,这样就少了上面的这个步骤。

构建RPM包

运行mock命令时,你必须要执行一个配置文件,当前系统上可用的配置文件都在/etc/mock目录下。如下面的内容:

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
-rw-r--r-- 1 root mock  1595 Aug 16 22:42 epel-5-i386.cfg
-rw-r--r-- 1 root mock 1585 Aug 16 22:42 epel-5-x86_64.cfg
-rw-r--r-- 1 root mock 1812 Aug 16 22:42 epel-6-i386.cfg
-rw-r--r-- 1 root mock 1592 Aug 16 22:42 epel-6-ppc64.cfg
-rw-r--r-- 1 root mock 2250 Aug 16 22:42 epel-6-x86_64.cfg
-rw-r--r-- 1 root mock 2362 Aug 16 22:42 epel-7-aarch64.cfg
-rw-r--r-- 1 root mock 2399 Aug 16 22:42 epel-7-ppc64le.cfg
-rw-r--r-- 1 root mock 2394 Aug 16 22:42 epel-7-x86_64.cfg
-rw-r--r-- 1 root mock 2022 Aug 16 22:42 fedora-25-aarch64.cfg
-rw-r--r-- 1 root mock 2016 Aug 16 22:42 fedora-25-armhfp.cfg
-rw-r--r-- 1 root mock 2033 Aug 16 22:42 fedora-25-i386.cfg
-rw-r--r-- 1 root mock 2014 Aug 16 22:42 fedora-25-ppc64.cfg
-rw-r--r-- 1 root mock 2022 Aug 16 22:42 fedora-25-ppc64le.cfg
-rw-r--r-- 1 root mock 2015 Aug 16 22:42 fedora-25-s390x.cfg
-rw-r--r-- 1 root mock 2016 Aug 16 22:42 fedora-25-x86_64.cfg
-rw-r--r-- 1 root mock 2018 Aug 16 22:42 fedora-26-aarch64.cfg
-rw-r--r-- 1 root mock 2016 Aug 16 22:42 fedora-26-armhfp.cfg
-rw-r--r-- 1 root mock 2033 Aug 16 22:42 fedora-26-i386.cfg
-rw-r--r-- 1 root mock 2010 Aug 16 22:42 fedora-26-ppc64.cfg
-rw-r--r-- 1 root mock 2018 Aug 16 22:42 fedora-26-ppc64le.cfg
-rw-r--r-- 1 root mock 2015 Aug 16 22:42 fedora-26-s390x.cfg
-rw-r--r-- 1 root mock 2016 Aug 16 22:42 fedora-26-x86_64.cfg
-rw-r--r-- 1 root mock 2018 Aug 16 22:42 fedora-27-aarch64.cfg
-rw-r--r-- 1 root mock 2160 Aug 16 22:42 fedora-27-armhfp.cfg
-rw-r--r-- 1 root mock 2033 Aug 16 22:42 fedora-27-i386.cfg
-rw-r--r-- 1 root mock 2010 Aug 16 22:42 fedora-27-ppc64.cfg
-rw-r--r-- 1 root mock 2018 Aug 16 22:42 fedora-27-ppc64le.cfg
-rw-r--r-- 1 root mock 2012 Aug 16 22:42 fedora-27-s390x.cfg
-rw-r--r-- 1 root mock 2016 Aug 16 22:42 fedora-27-x86_64.cfg
-rw-r--r-- 1 root mock 2018 Aug 16 22:42 fedora-28-aarch64.cfg
-rw-r--r-- 1 root mock 2160 Aug 16 22:42 fedora-28-armhfp.cfg
-rw-r--r-- 1 root mock 2033 Aug 16 22:42 fedora-28-i386.cfg

初始化和删除mock chroot

你可以先初始化mock使用的chroot,这样就可以减少构建rpm包的时间

1
mock -r epel-7-x86_64 --init

你可以通过下面的命令来删除chroot

1
mock -r epel-7-x86_64 --clean

执行构建

1
mock -r epel-7-x86_64 --rebuild xxx.src.rpm

当构建完成,结构和日志都在/var/lib/mock/epel-7-x86_64/result目录下。你可可以通过添加参数 –resultdir来调整目录

结论

通过mock可以构建不同架构不同版本下的rpm包,mock可以保证整个过程不受之前的构建的影响,并且提供了一个简单的接口用于重复构建rpm包。

Redis持久化

Posted on 2018-09-23 | | Visitors:

概述

Redis是一种内存型的数据库,一般都是作为缓存使用,数据都是保存在内存中,但为了防止宕机后数据丢失,Redis提供了两种持久化方案,分别是RDB和AOF。接下来介绍一下这两种持久化方案。

RDB持久化

RDB持久化可以把当前Redis内存中的状态保存到硬盘上,可以手动触发,也可以通过配置文件自动执行。

RDB持久化后的文件是一个经过压缩的二进制文件,redis可以通过这个文件进行数据还原。

RDB持久化可以通过下面两个命令来触发:

  • SAVE: 阻塞Redis进程,知道RDB文件创建完成
  • BGSAVE: fork一个子进程来创建RDB文件,

RDB持久化优点

  1. 一旦采用该方式,那么你的整个Redis数据库将只包含一个文件,这对于文件备份而言是非常完美的。比如,你可能打算每个小时归档一次最近24小时的数据,同时还要每天归档一次最近30天的数据。通过这样的备份策略,一旦系统出现灾难性故障,我们可以非常容易的进行恢复。
  2. 对于灾难恢复而言,RDB是非常不错的选择。因为我们可以非常轻松的将一个单独的文件压缩后再转移到其它存储介质上。
  3. 性能最大化。对于Redis的服务进程而言,在开始持久化时,它唯一需要做的只是fork出子进程,之后再由子进程完成这些持久化的工作,这样就可以极大的避免服务进程执行IO操作了。
  4. 相比于AOF机制,如果数据集很大,RDB的启动效率会更高。

RDB持久化缺点

  1. 如果你想保证数据的高可用性,即最大限度的避免数据丢失,那么RDB将不是一个很好的选择。因为系统一旦在定时持久化之前出现宕机现象,此前没有来得及写入磁盘的数据都将丢失。
  2. 由于RDB是通过fork子进程来协助完成数据持久化工作的,因此,如果当数据集较大时,可能会导致整个服务器停止服务几百毫秒,甚至是1秒钟。

AOF持久化

AOF持久化(Append-Only-File),与RDB持久化不同,AOF持久化是通过保存Redis服务器所执行的写状态来记录数据库的。

具体来说,RDB持久化相当于备份数据库状态,而AOF持久化是备份数据库接收到的命令,所有被写入AOF的命令都是以redis的协议格式来保存的。

在AOF持久化的文件中,数据库会记录下所有变更数据库状态的命令,除了指定数据库的select命令,其他的命令都是来自client的,这些命令会以追加(append)的形式保存到文件中。

服务器配置中有一项appendfsync,这个配置会影响服务器多久完成一次命令的记录:

  • always:将缓存区的内容总是即时写到AOF文件中。
  • everysec:将缓存区的内容每隔一秒写入AOF文件中。
  • no :写入AOF文件中的操作由操作系统决定,一般而言为了提高效率,操作系统会等待缓存区被填满,才会开始同步数据到磁盘。

redis默认实用的是everysec。

redis在载入AOF文件的时候,会创建一个虚拟的client,把AOF中每一条命令都执行一遍,最终还原回数据库的状态,它的载入也是自动的。在RDB和AOF备份文件都有的情况下,redis会优先载入AOF备份文件。

AOF文件可能会随着服务器运行的时间越来越大,可以利用AOF重写的功能,来控制AOF文件的大小。AOF重写功能会首先读取数据库中现有的键值对状态,然后根据类型使用一条命令来替代前的键值对多条命令。

AOF重写功能有大量写入操作,所以redis才用子进程来处理AOF重写。这里带来一个新的问题,由于处理重新的是子进程,这样意味着如果主线程的数据在此时被修改,备份的数据和主库的数据将会有不一致的情况发生。因此redis还设置了一个AOF重写缓冲区,这个缓冲区在子进程被创建开始之后开始使用,这个期间,所有的命令会被存两份,一份在AOF缓存空间,一份在AOF重写缓冲区,当AOF重写完成之后,子进程发送信号给主进程,通知主进程将AOF重写缓冲区的内容添加到AOF文件中。

AOF的优点

  1. 该机制可以带来更高的数据安全性,即数据持久性。Redis中提供了3中同步策略,即everysec、always和no。事实上,everysec也是异步完成的,其效率也是非常高的,所差的是一旦系统出现宕机现象,那么这一秒钟之内修改的数据将会丢失。而always,我们可以将其视为同步持久化,即每次发生的数据变化都会被立即记录到磁盘中。可以预见,这种方式在效率上是最低的。至于no,无需多言,我想大家都能正确的理解它。
  2. 由于该机制对日志文件的写入操作采用的是append模式,因此在写入过程中即使出现宕机现象,也不会破坏日志文件中已经存在的内容。然而如果我们本次操作只是写入了一半数据就出现了系统崩溃问题,不用担心,在Redis下一次启动之前,我们可以通过redis-check-aof工具来帮助我们解决数据一致性的问题。
  3. 如果日志过大,Redis可以自动启用rewrite机制。即Redis以append模式不断的将修改数据写入到老的磁盘文件中,同时Redis还会创建一个新的文件用于记录此期间有哪些修改命令被执行。因此在进行rewrite切换时可以更好的保证数据安全性。
  4. AOF包含一个格式清晰、易于理解的日志文件用于记录所有的修改操作。事实上,我们也可以通过该文件完成数据的重建。

AOF的缺点

  1. 对于相同数量的数据集而言,AOF文件通常要大于RDB文件。RDB 在恢复大数据集时的速度比 AOF 的恢复速度要快。
  2. 根据同步策略的不同,AOF在运行效率上往往会慢于RDB。总之,每秒同步策略的效率是比较高的,no策略的效率和RDB一样高效。

reposync

Posted on 2018-06-12 | | Visitors:

在某些环境中,是不能上外网的,这就需要搭建一个内部的yum源,供内网的服务器安装软件。

那如何把公网的yum源下载下来能,这可以通过使用yum-utils工具包来完成

yum install yum-utils -y

安装完成之后就可以使用reposync命令来同步yum源了

通过下面的命令可以查看当前配置的yum源

yum repolist

找到需要同步的yum源,通过下面的命令进行同步

reposync --repoid=<$reponame> --download_path=<$path>

这样就把公网的yum源同步到本地磁盘了,以后就可以通过下载下来的内容搭建内网yum源

Git patch

Posted on 2018-03-08 | | Visitors:

git format-patch适用于git的patch,包含diff信息,包含提交人,提交时间等 如果生成的补丁不能打到当前分支,git am会给出提示,并协助你完成打补丁工作

对比分支生成patch

例:从master checkout 一个新分支修改然后与master对比生成patch。

1
2
$ git format-patch -M master   # -M选项表示这个patch要和那个分支比对
$ git am 001-xxx.patch # 不必重新commit

将commit打包成patch

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ git format-patch 1bbe3c8c19 # 从1bbe3c8c19往后的全部commit,不包括1bbe3c8c19

git format-patch -n 1bbe3c8c19 # 1bbe3c8c19开始n个commit,包含1bbe3c8c19

$ git format-patch HEAD^ # 最近的1次commit的patch
$ git format-patch HEAD^^ # 最近的2次commit的patch
$ git format-patch HEAD^^^ # 最近的3次commit的patch

$ git format-patch -1 # 同HEAD^
$ git format-patch -2 # 同HEAD^^
$ git format-patch -3 # 同HEAD^^^

$ git format-patch -1 -4 # -1到-4之间的commit,包括-1和-4

$ git format-patch <ref1>..<ref2> ## 在两个commit之间,包括ref1和ref2

patch合并到一个文件

默认情况下,每一个commit都会产生一个patch文件,下面的操作可以把全部commit合并到一个文件中

1
$ git format-path 1bbe3c8c19 --stdout > xxx.patch

应用patch

1
2
3
4
5
6
7
8
# 检查patch文件
$ git apply --stat xxx.patch

#查看是否能应用成功
$ git apply --check xxx.patch

# 应用patch
$ git am -s < xxx.patch

通过pacemaker管理mysql

Posted on 2018-03-05 | | Visitors:

在上一篇blog中mysql-replication介绍了如何配置mysql(mariadb)主从复制。我们还可以添加从节点到主节点的复制关系,这样就达到了mysql(mariadb)双向复制。

下面的配置通过pacemaker管理一个双向复制的mysql(mariadb)和一个VIP来实现mysql(mariadb)在双节点上的高可用。

环境

OS: CentOS Linux release 7.3.1611 (Core)

DB: mysql Ver 15.1 Distrib 5.5.56-MariaDB, for Linux (x86_64) using readline 5.1

host1(master): 172.16.143.171

host2(slave): 172.16.143.172

安装

1
yum install -y mariadb-server

安装完成后可以按照上一篇blog来配置双向复制。

1
2
3
systemctl stop mariadb

systemctl disable mariadb

安装配置pacemaker

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
yum install pcs pacemaker corosync fence-angets-all resource-angets -y

systemctl start pcsd

systemctl enable pcsd

systemctl start pacemaker

systemctl enable pacemaker

systemctl start corosync

systemctl enable corosync

passwd hacluster

pcs cluster auth ceph01 ceph02

pcs cluster setup --start --name cluster_mysql ceph01 ceph02

pcs cluster start --all

pcs property set stonith-enabled=false

pcs property set no-quorum-policy=ignore

配置资源

1
2
3
4
5
6
7
8
9
10
11
12
pcs resource create virtual_ip ocf:heartbeat:IPaddr2 \
ip=172.16.143.200 cidr_netmask=24 nic=eth0 op monitor interval=30s on-fail=restart

pcs resource create mysql ocf:heartbeat:mysql \
binary="/usr/bin/mysqld_safe" config="/etc/my.cnf" \
datadir="/var/lib/mysql" pid="/var/lib/mysql/mysql.pid" \
socket="/var/lib/mysql/mysql.sock" \
additional_parameters="--bind-address=0.0.0.0" op start timeout=60s \
op stop timeout=60s op monitor interval=20s timeout=30s \
on-fail=standby

pcs resource clone mysql clone-max=2 clone-node-max=1

结果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[root@ceph01 ~]# pcs status
Cluster name: cluster_mysql
Stack: corosync
Current DC: ceph01 (version 1.1.16-12.el7_4.7-94ff4df) - partition with quorum
Last updated: Mon Mar 5 22:07:52 2018
Last change: Mon Mar 5 22:06:22 2018 by root via cibadmin on cephlcm

2 nodes configured
3 resources configured

Online: [ ceph01 ceph02 ]

Full list of resources:

vip (ocf::heartbeat:IPaddr2): Started ceph01
Clone Set: mysql-clone [mysql]
Started: [ ceph01 ceph02 ]

Daemon Status:
corosync: active/enabled
pacemaker: active/enabled
pcsd: active/enabled

mysql主从复制

Posted on 2018-03-02 | | Visitors:

环境

OS:Centos 7.3

DB version: mysql Ver 15.1 Distrib 5.5.56-MariaDB, for Linux (x86_64) using readline 5.1

host1(master): 172.16.143.171

host2(slave): 172.16.143.172

安装

两个节点都执行下面的步骤

1
2
3
yum install mariadb-server -y

systemctl start mariadb

执行db安全选项

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
mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

You already have a root password set, so you can safely answer 'n'.

Change the root password? [Y/n] Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y
... Success!

Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y
... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y
... Success!

Cleaning up...

All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

master节点配置

在/etc/my.cnf文件的[mysqld]中添加如下内容

1
2
3
4
5
server-id=1
log-bin = /var/lib/mysql/mysql-bin
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema

重启db

1
systemctl restart mariadb
1
2
3
4
5
6
7
8
9
mysql -u root -p

GRANT REPLICATION SLAVE ON *.* TO 'replic_user'@'%' IDENTIFIED BY 'password';

FLUSH PRIVILEGES;

SHOW MASTER STATUS;

QUIT;

如果 master 中已经存在需要复制的数据,则需要dump出来,然后在slave上重放

1
2
3
4
5
mysql -u root -p

mysql> FLUSH TABLES WITH READ LOCK;

mysql> SHOW MASTER STATUS;
1
2
3
4
mysqldump -u root -p --databases [database-1] [database-2] ...  > /root/db_dump.sql

mysql -u root -p
mysql> UNLOCK TABLES;

slave节点配置

如果master节点上dump了数据,则需要执行下面的步骤进行重放。

1
2
scp root@172.16.143.171:/root/db_dump.sql /root/db_dump.sql
mysql -u root -p < /root/db_dump.sql

在/etc/my.cnf文件的[mysqld]中添加如下内容

1
2
3
4
5
server-id=2
og-bin = /var/lib/mysql/mysql-bin
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema

重启db

1
systemctl restart mariadb
1
2
3
mysql -u root -p

mysql> CHANGE MASTER TO MASTER_HOST='172.16.143.171',MASTER_USER='replic_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=107;

上面命令中MASTER_LOG_FILE 和 MASTER_LOG_POS 需要根据master节点中

master status```命令结果调整。
1
2
3
4
5

```bash
START SLAVE;

SHOW SLAVE STATUS\G

测试

在master节点中创建db,也可以在slave节点中看到。

双向复制

上面的配置实现了host1 –> host2 的复制关系,如需要实现双向复制,只需要按照上面的步骤再配置从 host2 –> host1 的复制关机即可。

另外在host1的/ect/my.cnf中添加如下内容

1
2
auto-increment-increment = 2
auto-increment-offset = 1

在host2的/ect/my.cnf中添加如下内容

1
2
auto-increment-increment = 2
auto-increment-offset = 2

ceph-ansible

Posted on 2018-02-06 | | Visitors:

通过本文了解如果通过ceph-ansible来安装ceph

前提条件

  • 配置免密
  • 关闭防火墙
  • 关闭selinux

安装ansible

pip install ansible==2.3.1.0

mkdir /etc/ansible

touch /etc/ansible/hosts

下载ceph-ansible

git clone https://github.com/ceph/ceph-ansible.git

cd ceph-ansible

git checkout -b stable-3.0 origin/stable-3.0

修改配置

规划好要部署的服务器及组件

例如,需要在ceph0节点上部署mon,mgr和osd,则在/etc/ansible/hosts文件中添加如下内容

[mons]
ceph0

[osds]
ceph0

[mgrs]
ceph0

修改ceph-ansible配置

cd ceph-ansible/group_vars
cp all.yml.sample all.yml
cp mons.yml.sample mons.yml
cp mgrs.yml.sample mgrs.yml
cp osds.yml.sample osds.yml

把all.yml文件改成如下内容

dummy:
ceph_origin: repository
ceph_repository: community
ceph_mirror: http://mirrors.ustc.edu.cn/ceph
ceph_stable_key: http://mirrors.ustc.edu.cn/ceph/keys/release.asc
ceph_stable_release: luminous
ceph_stable_redhat_distro: el7
monitor_interface: ens160
monitor_address: 0.0.0.0
public_network: 123.59.153.0/24
cluster_network: 10.10.20.0/24
osd_objectstore: bluestore
handler_health_osd_check: false

具体配置含义及其他一些配置内容可以参考相应的all.yml.sample

monitor_interface, public_network 和 cluster_network 根据实际情况调整

osd_objectstore可以选择bluestore和filestore

假设ceph0节点上有3块硬盘(sdb,sdc,sddd)用户部署OSD

把osds.yml 改成如下内容

---
dummy:
devices:
  - /dev/sdb
  - /dev/sdc
  - /dev/sdd
osd_scenario: collocated

osds.yml.sample中定了多种osd部署方式,可以根据需要灵活调整。

上面这个例子中,会把一块硬盘分区两个分区,一个分区100M,一个占满磁盘的剩余空间。

100M的分区会作为ceph block, ceph block.db, ceph block.wal, 另一个分区作为 ceph data。

部署ceph

cd ceph-ansible
cp site.yml.sample site.yml

ansible-playbook site.yml 

修改crush rule

部署完成后默认的crush rule的故障域是host,如果ceph是部署在一个server上,在创建多副本pool的情况下会存在问题。

通过修改crush rule的故障域为osd,可以解决这个问题。

ceph osd getcrushmap -o crushmap

crushtool -d crushmap -o crushmap.txt

修改crushmap.txt 文件中内容如下,把故障域从host改成osd

rule replicated_rule {
        id 0
        type replicated
        min_size 1
        max_size 10
        step take default
        step chooseleaf firstn 0 type osd
        step emit
}

导入新的crushmap

crushtool -c crushmap.txt -o crushmap
ceph osd setcrushmap -i crushmap

创建POOL

根据需要创建POOL

ceph osd pool create testpool 32

清理ceph

cd ceph-ansible

cp infrastructure-playbooks/purge-cluster.yml .

ansible-playbook purge-cluster.yml

service start too often

Posted on 2017-12-18 | | Visitors:

通过systemd来管理服务,经常会遇到这种错误”failed because start of the service wasattempted too often”.

遇到这种情况可以到/etc/systemd/system目录下,修改相应的service文件

一般情况下在添加下面的内容即可:

[Service] StartLimitBurst=0

保存退出后,执行reload

sudo systemctl daemon-reload

再启动相应服务即可。

Centos7 修改网卡为ethX

Posted on 2017-10-10 | | Visitors:

Centos7之后默认的网卡名变成enp0s3这种样子,不再是ethX

通过下面的步骤可以把网卡名变回ethX

  • vim /etc/default/grub

    在GRUB_CMDLINE_LINUX的最后,加上 net.ifnames=0 biosdevname=0 的参数

    1
    2
    3
    4
    5
    6
    7
    GRUB_TIMEOUT=5
    GRUB_DISTRIBUTOR=”$(sed ‘s, release .*$,,g’ /etc/system-release)”
    GRUB_DEFAULT=saved
    GRUB_DISABLE_SUBMENU=true
    GRUB_TERMINAL_OUTPUT=”console”
    GRUB_CMDLINE_LINUX=”rd.lvm.lv=rootvg/usrlv rd.lvm.lv=rootvg/swaplv crashkernel=auto vconsole.keymap=us rd.lvm.lv=rootvg/rootlv vconsole.font=latarcyrheb-sun16 rhgb quiet net.ifnames=0 biosdevname=0”
    GRUB_DISABLE_RECOVERY=”true”
  • grub2-mkconfig -o /boot/grub2/grub.cfg
  • mv /etc/sysconfig/network-scripts/ifcfg-enp0s3 /etc/sysconfig/network-scripts/ifcfg-eth0
  • reboot

logrotate

Posted on 2017-09-26 | | Visitors:

通过logroate,可以对日志文件进行切分,压缩,配置保留多少天等

下面两篇文件对logrotate的配置介绍的很详细

https://support.rackspace.com/how-to/understanding-logrotate-utility/

https://support.rackspace.com/how-to/sample-logrotate-configuration-and-troubleshooting/

123
yanyx

yanyx

24 posts
10 tags
RSS
GitHub E-Mail
© 2017 — 2019 yanyx
Powered by Hexo
|
Theme — NexT.Mist v5.1.3