分类目录归档:运维日志

centos 升级PHP版本到7.3

服务器PHP版本从7.2升级到7.3过程,其实只需要很简单的步骤

  • 停止PHP服务
  • 移除旧版PHP
  • 设置新版本rpm库
  • 下载安装新版并重启服务

移除旧版

# 停止当前服务
systemctl stop php-fpm
# 停止Nginx服务
systemctrl stop nginx
# 查看已安装的PHP版本
yum list installed |grep php

查看已安装的版本

请务必找个地方记录已经安装的模块

后续重新安装的时候也要把这些模块安装上

[root@long ~]# yum list installed |grep php
Failed to set locale, defaulting to C
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
mod_php72w.x86_64                   7.2.17-1.w7                        @webtatic
php72w-cli.x86_64                   7.2.32-1.w7                        @webtatic
php72w-common.x86_64                7.2.32-1.w7                        @webtatic
php72w-devel.x86_64                 7.2.32-1.w7                        @webtatic
php72w-fpm.x86_64                   7.2.32-1.w7                        @webtatic
php72w-gd.x86_64                    7.2.32-1.w7                        @webtatic
php72w-mbstring.x86_64              7.2.32-1.w7                        @webtatic
php72w-mysqlnd.x86_64               7.2.32-1.w7                        @webtatic
php72w-pdo.x86_64                   7.2.32-1.w7                        @webtatic
php72w-xml.x86_64                   7.2.32-1.w7                        @webtatic

移除版本

# 移除所有PHP
yum remove php*
# 查看是否清除干净了
yum search php

安装新版

# EPEL源
yum install epel-release

# REMI源,centos7的使用下面的地址,其他版本自行去官网查看
# 这里下载的时候会很慢,要耐心等待,如果下载不了就要自行找镜像了
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

# 更新一下库
yum update

# Yum 源工具
yum install yum-utils

# 查看是否有出现php73的版本了
yum search php73

# 如果出现这样的说明Yum还是没有设置正确,需要重新设置一下
[root@long ~]# yum search php73
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
Determining fastest mirrors
 * base: mirrors.cloud.aliyuncs.com
 * extras: mirrors.cloud.aliyuncs.com
 * updates: mirrors.cloud.aliyuncs.com
 * webtatic: us-east.repo.webtatic.com
Warning: No matches found for: php73
No matches found

开始安装

装回上面记录已经卸载的版本

yum install -y php73-php-fpm php73-php-cli php73-php-bcmath php73-php-gd php73-php-json php73-php-mbstring php73-php-mcrypt php73-php-mysqlnd php73-php-opcache php73-php-pdo php73-php-pecl-crypto php73-php-pecl-mcrypt php73-php-pecl-geoip php73-php-recode php73-php-snmp php73-php-soap php73-php-xml

重启服务

# 默认安装后的命令叫php73,我们需要改为php,这样composer才能正常工作
cp /usr/bin/php73 /usr/bin/php

# 查看PHP版本
php -v

# 重启服务
systemctl enable php73-fpm
systemctl start php73-fpm
systemctrl start nginx

最后查看自己的PHP程序是否都正常了

服务器空间清理

服务器空间爆满的时候,要清理一些垃圾文件,以下整理常用的操作。

查看磁盘空间占用情况命令

cd /
# -h 友好的文件大小展示
# -d 1 扫描深度 1 表示只扫描当前目录下的大小
du -hd 1

会显示以下结果

4.0K    ./mnt
35M ./opt
0   ./sys
4.0K    ./media
40M ./etc
147M    ./boot
16K ./lost+found
4.0G    ./usr
0   ./proc
0   ./dev
23G ./var
9.2M    ./run
4.0K    ./data
1.2G    ./root
4.0K    ./srv
6.5M    ./tmp
46G .

排查过程:一步步查看占用空间比较大的目录,逐一击破。

Docker 垃圾文件清理

移除没有使用的镜像

docker image prune

检查Volumn占用情况

有些已经删除的容器残留下来的Volumn

# 查看卷
$ docker volume ls

DRIVER              VOLUME NAME
local               179a41a06fd1846903f09af979347c35dca7eabdd33f2a2a323e694011013b48
local               3fd4c3dce22b080e45234a13ba80492370e4a1db0ba9fd4992f9ef80e1254d33
local               5964c9d8a7ac6623b4cf629448b33a4ebdf99ada7b867f4d76f93998d9db6767
local               5b8a1d868aabaa35628f1ff36879b465b20eccab891f27672f9a3fa5147b6d49
local               5ff014d431df3144a0ab5b7c58bf4c3e5efd7a0313d31f2f6b473cb1eef38139

# 移除没有使用的
$ docker volume prune

Deleted Volumes:
5b8a1d868aabaa35628f1ff36879b465b20eccab891f27672f9a3fa5147b6d49
5ff014d431df3144a0ab5b7c58bf4c3e5efd7a0313d31f2f6b473cb1eef38139
65cb3e5ea0f8e24010c59d89fb02e75b19c3f2927fcc834bbaf48a1bb6c4b160
cbbca6df34a0ec0182e6682c87e21a31e0b21c980aa0f4297618d8cb5693872f
e21b0c710c575977a48f13f87b08ef2dd3f4037818332f1b09e71ffb4cd6ed37
179a41a06fd1846903f09af979347c35dca7eabdd33f2a2a323e694011013b48
3fd4c3dce22b080e45234a13ba80492370e4a1db0ba9fd4992f9ef80e1254d33
5964c9d8a7ac6623b4cf629448b33a4ebdf99ada7b867f4d76f93998d9db6767

Total reclaimed space: 8.489 GB

Mysql数据库备份与恢复

备份数据库

备份整个数据库

mysqldump -u root -p source_db > /tmp/souce_db.bak

备份整个数据库 gzip压缩

mysqldump -u root -p source_db   | gzip > /tmp/souce_db.gz

指定备份某些表

mysqldump -u root -p  source_db --tables tb_user tb_config |gzip >  /tmp/souce_db.gz

恢复数据库

$ mysql -uroot -p
$ show databases;
$ use target_db;
$ source /tmp/souce_db.bak

恢复数据库 gzip压缩

gunzip < souce_db.gz | mysql -uroot -p source_db

docker 安装 redis

1、下载镜像

$ docker pull redis

2、官网下载redis.conf配置文件

$ curl http://download.redis.io/redis-stable/redis.conf > redis.conf

2、创建容器

$ docker run --name redis -p 6379:6379 -v  /docker/redis/:/etc/redis/ -itd redis  /etc/redis/redis.conf --appendonly yes

mysql 备份数据库常用命令

1、备份命令

格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 –database 数据库名 > 文件名.sql

例如: mysqldump -h 192.168.1.100 -p 3306 -uroot -ppassword –database cmdb > /data/backup/cmdb.sql

2、备份压缩

导出的数据有可能比较大,不好备份到远程,这时候就需要进行压缩

格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 –database 数据库名 | gzip > 文件名.sql.gz

例如: mysqldump -h192.168.1.100 -p 3306 -uroot -ppassword –database cmdb | gzip > /data/backup/cmdb.sql.gz

3、备份同个库多个表

格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 –database 数据库名 表1 表2 …. > 文件名.sql

例如 mysqldump -h192.168.1.100 -p3306 -uroot -ppassword cmdb t1 t2 > /data/backup/cmdb_t1_t2.sql

4、同时备份多个库

格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 –databases 数据库名1 数据库名2 数据库名3 > 文件名.sql

例如:mysqldump -h192.168.1.100 -uroot -ppassword –databases cmdb bbs blog > /data/backup/mutil_db.sql

5、备份实例上所有的数据库

格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 –all-databases > 文件名.sql

例如:mysqldump -h192.168.1.100 -p3306 -uroot -ppassword –all-databases > /data/backup/all_db.sql

6、备份数据出带删除数据库或者表的sql备份

格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 –add-drop-table –add-drop-database 数据库名 > 文件名.sql

例如:mysqldump -uroot -ppassword –add-drop-table –add-drop-database cmdb > /data/backup/all_db.sql

7、备份数据库结构,不备份数据

格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 –no-data 数据库名1 数据库名2 数据库名3 > 文件名.sql

例如:mysqldump –no-data –databases db1 db2 cmdb > /data/backup/structure.sql

centos 常用命令总结

防火墙

开启防火墙

systemctl start firewalld

开启端口号

firewall-cmd --zone=public --add-port=80/tcp --permanent

  • –zone #作用域
  • –add-port=80/tcp #添加端口,格式为:端口/通讯协议
  • –permanent #永久生效,没有此参数重启后失效

查看端口号

firewall-cmd --list-ports

重启防火墙

firewall-cmd --reload

文件操作

删除文件夹

rm -rf youdir

解压ZIP

yum install zip unzip

unzip filename

SSH 复制文件

scp LocalFile UserName@RemoteIP:RemoteFile

配置虚拟内存

参考文章

  1. 添加swap文件大小为2G
    默认情况下, of=/swapfile 即swapfile文件创建在/var/目录下。
    若我在创建在/opt/image/目录下, 则下面所有的操作里有/swapfile的都要改为/opt/image/swap
    dd if=/dev/zero of=/swapfile bs=1k count=2048000
  2. 创建SWAP文件
    mkswap /swapfile
  3. 激活SWAP文件
    swapon /swapfile
  4. 查看SWAP信息是否正确
    swapon -s
  5. 添加到fstab文件中让系统引导时自动启动
    注意, 这里是采用了swapfile文件的默认路径, 即/var/swapfile。若你上面的操作中swapfile文件不是在/var/目录下, 则下面的/var/swapfile也要相应修改为自己设写的。
    echo "/var/swapfile swap swap defaults 0 0" >> /etc/fstab
  6. 用命令free检查2G交换分区生效
    free -m
    或者, 检查meminfo文件
    grep SwapTotal /proc/meminfo
  7. 释放SWAP文件
    swapoff /swapfile
  8. 删除SWAP文件
    rm -fr /swapfile

RAE 原创文章,转载请注明出处

docker 安装容器以及常用操作命令

镜像操作


# 安装镜像,其中1.0为版本号,不填写默认是最新的。
docker pull redis:1.0

# 启动容器
docker start containerId

# 进入容器
docker exec -it containerId /bin/bash

# 以root 用户进入容器
docker exec -u root -it yourconainer /bin/bash

安装redis容器


# 安装容器:
docker run -p 6379:6379 -v $PWD/data:/data  -d redis redis-server --appendonly yes

# 进入容器
docker exec -it 71352213d7d6 redis-cli

安装mysql容器


# 安装容器
docker pull mysql

# 运行
sudo docker run --name mysql -p 3306:3306 -e MYSQL\_ROOT\_PASSWORD=raedev@qq.com -d mysql containerId

docker 安装jenkins容器

docker 中安装Jenkins很方便,而且不会污染服务器的环境,采用docker是再适合不过了。

安装Jenkins镜像

# 这里安装官方镜像
docker pull docker.io/jenkins

创建docker file

mkdir -d /home/docker/jenkins
cd /home/docker
vim jenkins.yml

jenkins.yml 文件内容如下:

version: '3'
services:
    nexus:
        hostname: jenkins
        container_name: jenkins
        image: docker.io/jenkins
        restart: always
        ports:
            - "8080:8080"
        volumes:
            - /home/docker/jenkins/:/jenkins-data

启动容器

如果没有安装docker-compose的先安装该命令

# 安装docker-compose
yum install docker-compose

通过docker file 创建和运行容器,-d 表示后台运行

# 启动
docker-compose --file jenkins.yml  up -d
# 查看
docker ps

正常启动后就能访问,在浏览器输入: http://127.0.0.1:8080 访问。

镜像操作

docker pull redis:1.0 – 安装镜像,其中1.0为版本号,不填写默认是最新的。

docker start containerId 启动容器

docker exec -it containerId /bin/bash 进入容器

redis

安装容器:

docker run -p 6379:6379 -v $PWD/data:/data -d redis redis-server --appendonly yes

进入容器:

docker exec -it 71352213d7d6 redis-cli

mysql

安装容器:

docker pull mysql

sudo docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=raedev@qq.com -d mysql containerId