使用rsync增量备份和同步数据

为了使用免密认证,先生成主机ssh公钥和私钥,并添加主机公钥到远程备份主机的可信任公钥列表:

$ ssh-keygen 
$ cat ~/.ssh/id_rsa.pub | ssh root@remotehost 'cat >> ~/.ssh/authorized_keys'

递归同步当前主机下的/sourcedir/目录下的dir1/, dir2目录文件,执行如下备份命令:

$ rsync --progress --delete -arHz --include 'dir1/' --include 'dir2/' --exclude '/*' /sourcedir/ root@remotehost:/backup/

执行的参数:

-a: 归档文件模式
-r: 递归同步
-H: 建立文件硬链接
-z: 使用压缩文件传输
--progress: 输出同步日志
--delete: 同步删除与原数据不匹配的数据(非常有用)
--include: 包含某个文件或目录
--exclude: 除过某个文件或目录

sourcedir: 原数据目录
remotehost: 目的主机地址
backup: 目的数据目录

解决mariaDb安装完后任意密码可访问问题

使用任意密码进入数据库:

$ mysql -uroot -p
//进入数据库

更改mysql user表的plugin类型为’mysql_native_password’,并修改自定义的认证信息:

MariaDB [(none)]> UPDATE mysql.user SET authentication_string = PASSWORD('password'), plugin = 'mysql_native_password' WHERE User = 'root' AND Host = 'localhost';

刷新权限退出后就只能使用自定义的认证信息进入数据库了:

MariaDB [(none)]> flush privileges;
MariaDB [(none)]> quit

debian 9 配置 Let’s Encrypt 加密访问证书

为站点域名申请加密证书:

若没有 add-apt-repository 命令则先安装:

$ vim /etc/apt/sources.list
在文件后面追加: 
deb http://ftp.debian.org/debian stretch-backports main

安装 dirmng 包:

$ apt-get install -y software-properties-common
$ apt install dirmng

添加 cerbot ppa 源:

$ add-apt-repository ppa:certbot/certbot

安装 python-certbot-nginx

$ apt-get install python-certbot-nginx

编辑 /etc/nginx/sites-available/default文件,修改server_name为需要申请ssl证书的域名:

. . .
server_name jokey.xyz;
. . .

重载 nginx 服务配置文件:

$ systemctl reload nginx

通过 nginx 的方式生成授权证书:

$ certbot --authenticator standalone --installer nginx -d jokey.xyz \
 --pre-hook "service nginx stop" --post-hook "service nginx start"

等待申请流程跑成功,就可以使用 https://jokey.xyz/ 访问站点了。

更新站点域名加密证书:

尝试更新加密证书是否能成功:

$ certbot renew --dry-run

使用 crond 定时任务可实现自动化证书更新:

$ vim /etc/cron.d/cerbot

编辑输入以下配置内容:

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew

增加定时任务配置后,重载 crond 服务:

$ service crond reload