[工具] Shell 将本地的 SSL 证书恢复到本地的 LNMP + SSL

介绍

基本信息

作者:朱明宇
名称:将本地的 SSL 证书恢复到本地的 LNMP + SSL
作用:将本地的 SSL 证书恢复到本地的 LNMP + SSL

使用方法

1. 将网站的 SSL 公钥、网站的 SSL 私钥 2 个文件放在此脚本中变量 tmppath 对应的目录里
2. 给此脚本添加执行权限
3. 执行此脚本

脚本分割线里的变量

tmppath=/bcache #本地存放 SSL 证书的名称
cmidname=fullchain #SSL 公钥的名称
kmidname=privkey #SSL 私钥的名称
sslpath=/etc/letsencrypt/live/eternalcenter.com/ #本地 LNMP + SSL 存放公私的目录

注意

1. 本地需要已经搭建好 LNMP 平台
2. 必须以 root 的身份执行此脚本

脚本

#!/bin/bash

####################### Separator ########################

tmppath=/bcache
cmidname=fullchain
kmidname=privkey
sslpath=/etc/letsencrypt/live/eternalcenter.com/

####################### Separator ########################


nowdirectory=`pwd`


cd $tmppath


crtfile=`ls | grep $cmidname | grep -E \.pem$ | tail -1`
keyfile=`ls | grep $kmidname | grep -E \.pem$ | tail -1`

echo $crtfile
if [ -n "$crtfile" ];then
    rm -rf $sslpath/$crtfile
    mkdir -p $sslpath &> /dev/null
    mv $crtfile $sslpath/
    chcon -t httpd_config_t $sslpath/*
fi

echo $keyfile
if [ -n "$keyfile" ];then
    rm -rf $sslpath/$keyfile
    mkdir -p $sslpath &> /dev/null
    mv $keyfile $sslpath/
    chcon -t httpd_config_t $sslpath/*
fi

chcon -t httpd_config_t $sslpath

sudo systemctl restart nginx
sudo systemctl restart php-fpm

cd $nowdirectory

[工具] Shell 将本地 SSL 证书传送到远程服务器

介绍

基本信息

作者:朱明宇
名称:将本地 SSL 证书传送到远程服务器
作用:将本地 SSL 证书传送到远程服务器

使用方法

1. 给此脚本添加执行权限
2. 执行此脚本

脚本分割线里的变量

sslpath=”/etc/letsencrypt/live/eternalcenter.com” #本地存放 SSL 证书的目录
sslfile1=”fullchain.pem” #本地 SSL 证书的文件名,这个是公钥
sslfile2=”privkey.pem” #本地 SSL 证书的文件名,这个是私钥
bip=”192.168.0.1 192.168.0.2″ #远程服务器的 IP 地址,多个 IP 地址用空格分开
buser=”mingyuzhu” #登录远程服务器的用户名
bcache=”/bcache” #远程服务器存放 SSL 证书的目录

注意

1. 指定的用户必须要能无密码登录远程服务器
2. 指定的用户必须对远程服务器里指定的目录拥有所属权

脚本

#!/bin/bash

sslpath="/etc/letsencrypt/live/eternalcenter.com" #website cache
sslfile1="fullchain.pem"
sslfile2="privkey.pem"

bip="49.12.248.138"
buser="mingyuzhu"
bcache="/bcache"

######################## copy webiste date to remote server #########################

for i in `echo $bip`

do
ping -c4 -i0.8 -w4 $i &> /dev/null

if [ $? -eq 0 ];then
    ssh $buser@$i "who -b"
        if [ $? -eq 0 ];then
#            ssh $buser@$i "sudo mkdir $bcache ; sudo chown $buser:$buser $bcache"
            scp $sslpath/$sslfile1 $buser@$i:$bcache/ 
            scp $sslpath/$sslfile2 $buser@$i:$bcache/ 
        fi
fi
done

######################## copy webiste date to remote server #########################

[工具] Shell 将本地 LNMP 的网站文件和网站数据备份并传送到远程服务器

介绍

基本信息

作者:朱明宇
名称:将本地 LNMP 的网站文件和网站数据备份并传送到远程服务器
作用:将本地 LNMP 的网站文件和网站数据备份并传送到远程服务器
使用方法

使用方法

1. 在此脚本的分割线内写入相应的内容
2. 给此脚本添加执行权限
3. 执行此脚本

脚本分割线里的变量

1. filename=eternalcenter-backup #备份文件的中间名
2. lpath=”/usr/share/nginx/html” #本地存放网站文件的目录
3. tcache=”/tcache” #本地临时存放网站文件备份和网站数据备份的目录
4. bip=”192.168.0.1 192.168.0.2″ #远程服务器的 IP 地址,多个 IP 地址可以用空格分开
5. buser=”mingyuzhu” #登录远程服务器的用户
6. bcache=”/bcache” #远程服务器用于存放备份的目录

注意

1. 本地需要已经搭建好 LNMP 平台
2. 用于远程服务器的用户,需要能免密钥 ssh 远程服务器,且对于本地用于备份数据的目录和远程服务器用于备份数据的目录拥有读和执行的权限
3. 脚本里的 ”mysqldump -uroot -p’eternalcenter’ lnmp > $tcache/$filename-$date.sql“ 是指本地 MariaDB 数据库用户是 root、密码是 eternalcenter、要备份的库名是 lnmp,这些都需要修改成真实环境中对应的值
4. tcache=”/tcache” 本地临时存放网站文件备份和网站数据备份的目录,每次执行此脚本时这个目录里面以前的文件都会被清空

脚本

#!/bin/bash


filename=eternalcenter-backup #middle name
lpath="/usr/share/nginx/html" #website server directory

tcache="/tcache" #website cache

bip="147.182.245.159"
buser="mingyuzhu"
bcache="/bcache"


date=$(date +%Y-%m-%d-%H)

######################## backup webiste date #########################
mkdir $tcache &> /dev/null
rm -rf $tcache/* &> /dev/null
mysqldump -uroot -p'ec@zhu mingyu#123abc!@#' ec > $tcache/$filename-$date.sql
cd $lpath
sudo tar -zcvf $tcache/$filename-$date.tar.gz .[!.]* * &> /dev/null
cd
######################## backup webiste date #########################


######################## copy webiste date to remote server #########################

for i in `echo $bip`

do
ping -c4 -i0.8 -w4 $i &> /dev/null

if [ $? -eq 0 ];then
    ssh $buser@$i "who -b"
        if [ $? -eq 0 ];then
#            ssh $buser@$i "sudo mkdir $bcache ; sudo chown $buser:$buser $bcache"
            scp $tcache/* $buser@$i:$bcache/ 
        fi
fi
done

######################## copy webiste date to remote server #########################

[工具] Shell 批量将本地的网站公私钥拷贝到远程服务器

介绍

基本信息

作者:朱明宇
名称:批量将本地的网站公私钥拷贝到远程服务器
作用:批量将本地的网站公私钥拷贝到远程服务器

使用方法

1. 在此脚本的分割线内写入相应的内容
2. 给此脚本添加执行权限
3. 执行此脚本

脚本分割线里的变量

1. sslpath=”/etc/letsencrypt/live/eternalcenter.com” #本地服务器存放网站公私钥的目录
2. sslfile1=”fullchain.pem” #本地服务器上的网站公钥的名称
3. sslfile2=”privkey.pem” #本地服务器上的网站私钥的名称
4. bip=”192.168.0.1″ #存放网站公私钥的远程服务器的 IP 地址,多个 IP 地址可以用空格分隔
5. buser=”mingyuzhu” #用于登录远程服务器的用户名
6. bcache=”/bcache” #远程服务器存放网站公私钥的目录

注意

1. 此脚本执行前必须要先保证执行本脚本的用户能无密码 ssh 远程这些远程服务器
2. 必须以 root 用户执行本脚本

脚本

#!/bin/bash

####################### Separator ########################

sslpath="/etc/letsencrypt/live/eternalcenter.com" #website cache
sslfile1="fullchain.pem"
sslfile2="privkey.pem"

bip="192.168.0.1"
buser="mingyuzhu"
bcache="/bcache"

####################### Separator ########################

######################## copy webiste date to remote server #########################

for i in `echo $bip`

do
ping -c4 -i0.8 -w4 $i &> /dev/null

if [ $? -eq 0 ];then
    ssh $buser@$i "who -b"
        if [ $? -eq 0 ];then
#            ssh $buser@$i "sudo mkdir $bcache ; sudo chown $buser:$buser $bcache"
            scp $sslpath/$sslfile1 $buser@$i:$bcache/ 
            scp $sslpath/$sslfile2 $buser@$i:$bcache/ 
        fi
fi
done

######################## copy webiste date to remote server #########################

[工具] Shell WordPress 网站数据去隐私化

介绍

基本信息

作者:朱明宇
名称:Shell 博客 WordPress 数据去隐私化
作用:修改 WordPress 备份中某个用户的密码并再次进行备份

使用方法

1. 在此脚本的分割线内写入相应的内容
2. 给此脚本添加执行权限
3. 执行此脚本

脚本分割线里的变量

1. path=/home/zhumingyu/EternalCenter #本地备份目录
2. filename=eternalcenter-backup #本地备份文件
3. cpath=”/srv/www/htdocs” #网站程序目录
4. sqlfile=eternalcenter/eternalcenter.sql #网站数据库数据备份
5. tarfile=eternalcenter/eternalcenter.tar.gz #网站网页数据备份
6. newfilename=clone-eternalcenter-backup #新备份的文件名
7. user=’Mingyu Zhu’ #要修改密码的用户
8. newpw=eternalcenter #新的用户密码
9. dbuser=ec #用于连接数据库的用户
10. dbuserpw=eternalcenter #用于连接数据库的密码
11. db=ec #网站数据库数据在数据库中的库

注意

1. 本地需要已经搭建好 LNMP 平台
2. 执行此脚本的用户需要有远程服务器的 sudo tar 和 sudo rm 权限
3. 脚本 ”mysql -uroot -p’eternalcenter’ -e “drop database $db;”“ 中 “eternalcenter“ 是指远程 MariaDB 数据库 root 用户的密码,需要修改成远程 MariaDB 数据库的 root 用户密码

脚本

#!/bin/bash

####################### Separator ########################

path=/home/zhumingyu/EternalCenter
filename=eternalcenter-backup
cpath="/srv/www/htdocs"
sqlfile=eternalcenter/eternalcenter.sql
tarfile=eternalcenter/eternalcenter.tar.gz
newfilename=clone-eternalcenter-backup
user='Mingyu Zhu'
newpw=eternalcenter
dbuser=ec
dbuserpw=eternalcenter
db=ec
tb=ec_users

####################### Separator ########################

date=$(date +%Y-%m-%d-%H)
dir=`pwd`

sudo systemctl stop nginx
sudo systemctl stop php-fpm

mkdir -p $path/$newfilename-$date &> /dev/null

mysql -uroot -p'eternalcenter' -e "drop database $db;"
mysql -uroot -p'eternalcenter' -e "create database $db;"
mysql -uroot -p'eternalcenter' -e "create user \"$dbuser\"@\"localhost\" identified by \"$dbuserpw\";"
mysql -uroot -p'eternalcenter' -e "grant all privileges on $db.* to \"$dbuser\"@'localhost';"
mysql -uroot -p'eternalcenter' ec < $sqlfile
mysql -uroot -p'eternalcenter' -e "update $db.$tb set user_pass = md5(\'$newpw\') where user_login = \'$user\';"
sudo rm -rf $cpath/*
sudo tar -zxvf $tarfile -C $cpath &> /dev/null
cd $cpath
sudo sed -i "s/define('DB_PASSWORD', .*);/define('DB_PASSWORD', \'$dbuserpw\');/" wp-config.php

mysqldump -uroot -p'eternalcenter' $db > $path/$newfilename-$date/$newfilename-$date.sql
sudo tar -zcvf $path/$newfilename-$date/$newfilename-$date.tar.gz .[!.]* * &> /dev/null
cd $dir

sudo systemctl start nginx
sudo systemctl start php-fpm

cd $dir