博客架构

2017年2月7日 发表评论 阅读评论

为毛会有这个文章

为了方便其他人参考我的博客构架自己的博客系统,所以在这里给出我的博客的架构,方便来访的童鞋参考

系统参数

我的博客目前使用的是Linode的VPS,配置为Linode1024
即为1 Core|1G RAM|25G SSD|2TB流量/月,带宽无上限,实际测试下来下行400Mbps,上行100Mbps,对我来说完全足够
VPS的主机物理位置在日本机房,时区我改为+8时区,符合国情
VPS租金为10$/月,差不多62元RMB,对我来说刚刚负担得起
域名是在西部数码购买的,类型为net域名,费用59元RMB/年,负担这个毫无压力
使用的操作系统是Debian 7发行版,部署的环境为经典的LAMP环境,另外还安装了Memcached提供缓存优化服务,Shadowsock提供番羽土啬服务
具体部署过程在

博客迁移到Linux主机小记


软件方面使用的是WordPress最新版本,使用的插件列表在这里
于2017-02-07 启用了HTTPS,详细的过程在

使用Let’s Encrypt 来启用HTTPS小记

备份部分我自己写了一个定时备份数据库和源代码的脚本
分为主要启动脚本和功能脚本
数据库部分
主要启动脚本:

DIR=~/backup/sh/DB_Backup/
echo ""
echo "******************"
echo "Start Backup Shell"
echo "******************"
#/bin/bash ./bash/*.sh
ls $DIR|while read line
do
    /bin/bash "$DIR$line"
done
echo ""
echo "******************"
echo "  Backup Finish!"
echo "******************"

功能脚本,默认保留90天内的备份:

#!/bin/sh
USER=DB_User      #这里是数据库用户名
PASSWORD=DB_Pass  #这里是数据库密码
DBNAME=DB_Name    #这里是数据库名称
BACKUP_DIR=~/backup/BackupFile/DBback/blog.l1n3.net/  #这里是要备份的文件的存放地址
DATE=`date '+%Y_%m_%d-%H.%M'`
DUMPFILE=$DATE.sql
ARCHIVE=$DATE.sql.tar.gz
OPTIONS="-u$USER -p$PASSWORD $DBNAME"
if [ ! -d $BACKUP_DIR ]; then
        mkdir -p $BACKUP_DIR
fi
cd $BACKUP_DIR
mysqldump $OPTIONS>$DUMPFILE
echo " "
echo " "
echo "------------------------------------------------"
echo "Start Backup blog.l1n3.net Database"
echo "BACKUP DATE:" $(date +"%y-%m-%d %H:%M:%S")
if [ ! -f $BACKUP_DIR$DUMPFILE.tar.gz  ]; then
        tar -zcvf $ARCHIVE $DUMPFILE
        rm -rfv $DUMPFILE
        find $BACKUP_DIR -mtime +90 -exec rm "{}" \;
        echo ""
        echo "Backup Successful!"
        echo "File Name : $ARCHIVE"
        echo "File Way  : $BACKUP_DIR"
        echo "------------------------------------------------"
else
        echo ""
        echo "Database Backup Fail!"
        echo "------------------------------------------------"
fi

源代码部分
主要启动脚本:

DIR=~/backup/sh/Source_Code_Backup/
echo ""
echo "******************"
echo "Start Backup Shell"
echo "******************"
#/bin/bash ./bash/*.sh
ls $DIR|while read line
do
    /bin/bash "$DIR$line"
done
echo ""
echo "******************"
echo "  Backup Finish!"
echo "******************"

功能脚本,默认保留90天内的备份:

#!/bin/sh
WEB_SITE_DIR=/var/www/blog_l1n3_net  #网站的绝对路径
BACKUP_DIR=~/backup/BackupFile/Source_Code_Backup/blog_l1n3_net/ #备份文件存放的路径
DATE=`date '+%Y_%m_%d-%H.%M'`  #获取当前时间
ARCHIVE=$DATE.tar.gz    #生成备份文件名
OPTIONS="$BACKUP_DIR$ARCHIVE $WEB_SITE_DIR"
echo $OPTIONS
if [ ! -d $BACKUP_DIR ]; then #判断是否存在文件夹
        mkdir -p $BACKUP_DIR
fi
cd $BACKUP_DIR
echo " "
echo " "
echo "------------------------------------------------"
echo "Start Backup blog.l1n3.net Source Code"
echo "BACKUP DATE:" $(date +"%y-%m-%d %H:%M:%S")

if [ ! -f $BACKUP_DIR$RCHIVE.tar.gz  ]; then
        tar -zcvf $OPTIONS
        find $BACKUP_DIR -mtime +90 -exec rm "{}" \;
        echo ""
        echo "Source Code Backup Successful!"
        echo "File Name : $ARCHIVE"
        echo "File Way  : $BACKUP_DIR"
        echo "------------------------------------------------"
else
        echo ""
        echo "Database Backup Fail!"
        echo "------------------------------------------------"
fi

在crontab里是这样写的

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
#第1列表示分钟1~59 每分钟用*或者 */1表示
#第2列表示小时1~23(0表示0点)
#第3列表示日期1~31
#第4列表示月份1~12
#第5列标识号星期0~6(0表示星期天)
#第6列以什么身份运行
#第7列要运行的命令
00      4       *       *       *       root    ~/backup/sh/DB_Backup.sh
#每天凌晨4点执行数据库备份
00      6       1,8,15,23,30    *       *       root    ~/backup/sh/Source_Code_Backup.sh
#每月的1号,8号,15号,23,号,30号的凌晨6点执行源代码备份
  1. 本文目前尚无任何评论.