跳转到帖子
  • 游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

    赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

    TheHackerWorld官方

阿里云定时备份任务填坑记


Ken1Ve

推荐的帖子

[Meting]
[Music server="netease" id="1330861946" type="song"/]
[/Meting]

前言

下午闲来无事,写了linux下的定时任务管理。大体思路是这样的,首先备份数据库,让后将数据库发送到我们指定的邮箱中。并删除本地备份的数据。

shell脚本

#!/bin/ 
#进入到备份文件夹
cd /root/back
#创建存放备份文件和数据库的文件夹,并修改权限为777
mkdir -m 777 -p ./backup$(date +"%Y%m%d")
#导出数据库到备份文件夹内
mysqldump -u 数据库账号 -p密码 数据库 > ./backup$(date +"%Y%m%d")/blog.sql
#压缩存放备份文件和数据库的文件夹
tar zcvf ./backup$(date +"%Y%m%d").tar.gz ./backup$(date +"%Y%m%d")
#以附件形式发送压缩包到指定邮箱
echo "数据备份"|mail -v -s "备份时间:$(date +%Y-%m-%d)" -a  /root/back/backup$(date +"%Y%m%d").tar.gz xxxxx@qq.com

#删除备份文件夹与压缩包
rm -rf /root/back/backup$(date +"%Y%m%d")
rm /root/back/backup$(date +"%Y%m%d").tar.gz

安装环境

yum install sendmail
yum install mailx

Debian/Ubuntu使用apt-get安装。
1.png

配置

centos7环境
在/etc/mail.rc增加如下配置:

set from="xiaoke@51yuyou.com"
set smtp="smtps://smtp.ym.163.com:465"
set smtp-auth-user="xiaoke@51yuyou.com"
set smtp-auth-password="xiaoke-password"
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb

填坑阿里云对25端口不开放,所以这次使用smtps协议也就是465端口来发送邮件

验证

echo "sometext"|mail -s "my subject" 要发送的邮箱地址

更新

在使用以上方式配置后,可以发送邮件但是会提示Error in certificate: Peer's certificate issuer is not recognized.

解决方法:

創建目錄,用來存放證書

mkdir -p /root/.certs/

向163請求證書

echo -n|openssl s_client -connect smtp.qiye.163.com:465|sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/163.crt

添加一個證書到證書數據庫中

certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/163.crt
certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/163.crt

使證書得到認可,避免發郵件後報錯:Error in certificate: Peer's certificate issuer is not recognized

cd /root/.certs   (一定要進入到證書所在目錄才行)
certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu"  -d ./ -i ./163.crt

列出目錄下證書

certutil -L -d /root/.certs

3.追加配置:

vim /etc/mail.rc
set from="zabbix@xxxxx.com"
set smtp="smtps://smtp.qiye.163.com:465"
set smtp-auth-user=mail@xxxxx.com
set smtp-auth-password=123456789
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/root/.certs

测试

echo 'hello'|mail -v -s "test mail" human.hu@xxxxx.com

QQ截图20181204161046.png

unbunt或debian
相对来说就很简单了,只需要将脚本最后一句echo "数据备份"|mail -v -s "备份时间:$(date +%Y-%m-%d)" -a /root/back/backup$(date +"%Y%m%d").tar.gz 邮箱改为sendEmail -f from@163.com -t to@qq.com -s smtp.163.com -u 'test' -o message-content-type=html -o message-charset=utf8 -xu from@163.com -xp 'passwd' -m 'test'即可。
sendemail命令详解
收到此提示表示发送成功

-f from@163.com                    #发件人邮箱地址
-t to@qq.com                     #收件人邮箱地址
-s smtp.163.com                   #发件人邮箱的smtp服务器地址
-u 'test'                      #邮件标题
-o message-content-type=html             #邮件内容格式为html
-o message-charset=utf8               #邮件内容编码为utf8
-xu from@163.com                  #发件人邮箱登录用户名
-xp 'passwd'                    #发件人邮箱登录密码
-m 'test'                      #邮件内容

也就是说centos系列系统用的是mail发送和debian系列用的是sendmail发送。

定时执行,每日备份

2、设定自动任务

crontab -e

SSH执行以上命令。

3、添加任务

00 00 * * * /root/backup.sh

按键盘字符:“i”,回车另起一行,添加以上代码,路径和时间请根据实际情况修改。
其中00 00为时间分/小时,可自行修改,例如:30 00 ,就是每天凌晨0:30运行这个脚本。这里的5个 分别代表分 时 日 月 周需要多久备份一次可以自己修改。

修改完成之后按esc或者ctrl+c退出编辑状态,再输入 :wq 保存任务。可以用crontab -l 来查看添加的任务是否在进行中。

crontab命令详解

以下是 crontab 文件的格式:
{minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script}
o minute: 区间为 0 – 59
o hour: 区间为0 – 23
o day-of-month: 区间为0 – 31
o month: 区间为1 – 12. 1 是1月. 12是12月.
o Day-of-week: 区间为0 – 7. 周日可以是0或7.
看不懂,没关系看这个
3333.png
00 00 * * *每天晚上00:00分执行备份
00 13 * * *每天下午03:00分执行备份
00 13 03 * *每月3号下午13点开始备份

效果

888.png


版权属于:逍遥子大表哥

本文链接:https://blog.bbskali.cn/547.html

按照知识共享署名-非商业性使用 4.0 国际协议进行许可,转载引用文章应遵循相同协议。

链接帖子
意见的链接
分享到其他网站

黑客攻防讨论组

黑客攻防讨论组

    You don't have permission to chat.
    • 最近浏览   0位会员

      • 没有会员查看此页面。
    ×
    ×
    • 创建新的...