0%

离线安装

  • 安装 setuptools

    1
    2
    3
    4
    
    https://pypi.org/project/setuptools/41.1.0/#files
    unzip setuptools-41.1.0.zip
    cd setuptools-41.1.0
    python setup.py install
  • 安装 supervisor

    1
    2
    3
    4
    
    https://github.com/Supervisor/supervisor/tags
    tar xf supervisor-4.2.4.tar.gz
    cd supervisor-4.2.4
    python setup.py install

 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
#!/bin/bash
ssh_root_proc=`ps -ef|grep "[s]shd"|awk '{ if ( $3 == "1" ) print $2 }'`
echo "已发现 SSH 守护进程 PID: $ssh_root_proc"
echo "请核对下面的输出以确认该 PID 是否正常"
echo
ps -ef|grep "[s]shd"
echo
echo "如果正常请按 y/Y,否则输入正常的 PID 后按回车,注意是带 -D 选项的进程,按 Ctrl-C 退出"
read ssh_pid
if [ "$ssh_pid" = "y" -o "$ssh_pid" = "Y" ]
then
    ssh_pid=$ssh_root_proc
elif [ -z "$ssh_pid" ]
then
    echo "未输入正常的 PID"
    exit 1
fi
user_grep=`awk -F":" '{ if ( $3 > 100) print $1}' /etc/passwd | xargs -ivar echo -n "var|"|sed 's/$/password/'`
strace -f -e trace=execve -s 256 -p $ssh_pid 2>&1 | while read SSH
do
    cmd_test=`echo $SSH | grep execve`
    if [ $? -eq 0 ]; then
        # 获取 PID
        pid=$(echo $SSH | awk '{print $2}' | sed 's/\[\|\]//g')
        # 检查 /proc/<pid>/status 文件中是否存在
        if [ -r "/proc/$pid/status" ]; then
          # 获取用户名
          username=$(awk '/^Uid:/ { uid=$2 } END { while ((getline < "/etc/passwd") >0) { split($0, a, ":"); if (a[3] == uid) { print a[1]; exit } } }' /proc/$pid/status)
        else
          username="unknown"
        fi
        # 获取当前时间戳
        current_time=$(date "+%Y-%m-%d %H:%M:%S")
        # 输出包含时间、用户名、和命令的信息
        echo "[$current_time] EXECUTED COMMAND by $username: $SSH"
    fi
done

运行脚本,输入 y,开始监听,只对新登录的用户有效

环境

DB1DB2

示例

  • 把 DB1 实例上的 schema 迁移到 DB2 实例上(schema 名不变)

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    
    # 在源库导出 schema
    dexp USERID=SYSDBA/密码@IP:端口 FILE=db_schema.dmp LOG=export.log SCHEMAS=需要导出的schema名
    
    # 在目标库上创建用户
    CREATE USER 目标用户名 IDENTIFIED BY "密码";
    GRANT VTI, PUBLIC, RESOURCE TO 目标用户名;
    GRANT SELECT ANY TABLE TO "你的用户名";
    
    # 在目标库导入 schema
    dimp USERID=SYSDBA/密码@IP:端口 FILE=db_schema.dmp LOG=import.log SCHEMAS=源schema名
  • 把 DB1 实例上的 schema 迁移到 DB2 实例上(schema 名称有变)

环境

IP角色数据库名实例名称安装路径进程MAL端口守护进程端口
192.168.1.105masterCHENDB_1_105/opt/dmdbms数据库进程、守护进程6114152141
192.168.1.107slave+监视器CHENDB_1_107/opt/dmdbms数据库进程、守护进程、监视器进程6114152141
192.168.1.108slaveCHENDB_1_108/opt/dmdbms数据库进程、守护进程6114152141

部署达梦

在三台机器上部署好达梦数据库

  • 创建用户(三个节点上都操作)

    1
    2
    3
    
    groupadd dmdba
    useradd -g dmdba -m -d /home/dmdba -s /bin/bash dmdba
    passwd dmdba
  • 调整 limits.conf 参数(三个节点上都操作)

    1
    2
    3
    4
    5
    6
    7
    8
    
    vim /etc/security/limits.conf
    
    dmdba   soft    nofile  65536
    dmdba   hard    nofile  65536
    dmdba   soft    nproc   65536
    dmdba   hard    nproc   65536
    dmdba   soft    stack   65536
    dmdba   hard    stack   65536

环境

  • sentinel 节点

    节点名称IP 地址
    sentinel-01192.168.1.54
    sentinel-02192.168.1.58
    sentinel-03192.168.1.94
  • redis 主从节点1

    节点名称IP 地址
    redis-01192.168.1.116
    redis-02192.168.1.240
  • redis 主从节点2

    节点名称IP 地址
    redis-03192.168.1.67
    redis-04192.168.1.167

环境

IP主机名端口
192.168.1.101cluster-016379
192.168.1.102cluster-026379
192.168.1.103cluster-036379
192.168.1.104cluster-046379
192.168.1.105cluster-056379
192.168.1.106cluster-066379

下载安装包并编译安装

编译安装

1
2
3
4
5
6
7
wget https://download.redis.io/releases/redis-6.2.1.tar.gz

tar xf redis-6.2.1.tar.gz

cd redis-6.2.1

make PREFIX=/usr/local/redis install

创建启动脚本

vim /usr/lib/systemd/system/redis.service

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
[Unit]
Description=Redis persistent key-value database
After=network.target
After=network-online.target
Wants=network-online.target

[Service]
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf --supervised systemd
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -S QUIT $MAINPID
Type=notify
User=redis
Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0755

[Install]
WantedBy=multi-user.target

创建用户设置权限

1
2
useradd redis -s /sbin/nologin
chown -R redis.redis /usr/local/redis/

安装依赖

1
yum install -y lzo lzo-devel openssl openssl-devel pam pam-devel net-tools git lz4-devel

安装 easy-rsa

1
2
3
mkdir /data/
wget -P /data/ http://down.i4t.com/easy-rsa.zip
unzip -d /usr/local /data/easy-rsa.zip

配置 vars 文件,vim /usr/local/easy-rsa-old-master/easy-rsa/2.0/vars

1
2
3
4
5
6
7
8
export KEY_COUNTRY="CN"
export KEY_PROVINCE="BJ"
export KEY_CITY="BeiJing"
export KEY_ORG="test"
export KEY_EMAIL="test@test.com"
export KEY_CN=test
export KEY_NAME=test
export KEY_OU=test

制作证书

制作 CA 证书

1
2
3
4
cd /usr/local/easy-rsa-old-master/easy-rsa/2.0/
source ./vars
./clean-all	# 执行此命令后,会在当前目录下创建一个 keys 目录
./build-ca	# 生成根证书 ca.crt 和密钥 ca.key,由于在 vars 文件中填写了基本信息,一路回车

在 keys 目录中,已经生成了 ca.crt 和 ca.key。ca.crt 就是证书文件

安装 FFmpeg

  • 安装 epel 源

    1
    
    yum install epel-release
  • 安装 Nux Dextop yum 源

    1
    2
    
    rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
    rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
  • 安装 ffmpeg 和 ffmpeg 开发包

    1
    
    yum install ffmpeg ffmpeg-devel

在 Linux 中,使用 systemd 创建定时任务(即替代传统的 crontab)主要是通过两个单元(unit)文件来实现:

  1. Service 单元(.service):定义要执行的任务内容
  2. Timer 单元(.timer):定义何时执行该任务

与 cron 相比,优点如下: