java 数据库备份 linux,java邮件打包在linux备份数据库练习

本文档记录了在Linux系统中使用Java实现163邮箱向QQ邮箱发送邮件的过程,包括打包部署、执行命令、权限设置以及遇到的错误。在设置定时任务时,遇到了cron的日志错误,原因是postfix配置问题和crontab环境变量未正确导入。通过调整postfix配置和在脚本头部导入环境变量解决了问题,最终实现了定时备份数据库并发送邮件的功能。
摘要由CSDN通过智能技术生成

承接上一篇文档《Java实现163邮箱发送邮件到QQ邮箱》

主方法修改获取数据的方式

bede5ac4015c58681a62ab07c40383f8.png

打包

6ed321e68b5ee60063454f99953f963d.png

可以看到打包的位置

5d6bd632d582dd40a4bae2419a3482ab.png

选择jar

8f47357d40f7f9a1d3e97a7299e8f0a6.png

上传到linux执行

cc2fdea20c34a38c6962c8c5203f7beb.png

执行语句

java -jar javamail-1.0-jar-with-dependencies.jar /data/qxclxx/shell/test.sql mail.sql 你的邮箱@qq.com

ae0b41a40c1b31ff4db62570daa2cae0.png

查看邮箱,可以看到是有的

3c210d7b491998aa7bbc26342da77897.png

编写一个脚本完成测试数据库的备份

创建脚本

434fac315b95c1c879e3ed2be36d4021.png

编写脚本

cf7f43fc0d0adfc6916cfb4da9d1940d.png

e4d0e682ef58f63f24046ecad25eaeab.png

运行脚本

6810cfe44e463bef0d34622bb5c1059e.png

查看邮件成功了

10251f9fb506d5cb49f7eac8396fc6c3.png

将脚本目录加入搭配环境变量中

ecc5634335f30488184065692aba7eae.png

查看下

9c5d2f1ad9389831f4a6d840dbddca29.png

在任意目录直接执行脚本

e5fa18b70304be642aab3b8a6281a5d0.png

出现问题

Error: Unable to access jarfile javamail-1.0-jar-with-dependencies.jar

改下权限(省事直接全给了)

chmod -R 777 javamail-1.0-jar-with-dependencies.jar

a794e3396189a71ec8f3f5c8ad6a55c4.png

仍然出现这个错误

在脚本中使用全路径

35a1f7ba7e9b655e569aa9f4a42630c0.png

这次成功了,同时也收到邮件了

5d0e9e1defec77f028df75cce681036f.png

写一个定时器,看是否能够定时发送邮件

查看日志

tail -f /var/log/cron

出现错误

mailed 42 bytes of output but got status 0x004b#012

8d7db1a9d070bc5e502c08c3366c664f.png

查看日志

cat /var/log/maillog

发现错误

fatal: parameter inet_interfaces: no local interface found for ::1

9f6b366220d64d6be9b252bb3007242e.png

解决方法:

vim /etc/postfix/main.cf

将:

inet_interfaces = localhost

inet_protocols = all

eab1ca36594835c3b58c874bfde93a11.png

改成:

inet_interfaces = all

inet_protocols = all

fb6a0a9cc58a66bff6e4e239fa332c44.png

inet_interfaces 参数指定postfix系统监听的网络接口。缺省地,postfix监听所有的网络接口。如果你的postfix运行在一个虚拟的ip地址上,则必须指定其监听的地址。如:

inet_interfaces = all

inet_interface = 192.168.1.1

重新启动

service postfix start

82558fb721e77f06d475a8e7fe6a9ec5.png

可以查看到下面的内容

6a0ebe8f55e1af1238708c646b81930c.png

里面有错误信息

You have new mail in /var/spool/mail/root

打开可以看到下面的错误内容

sh: mailexe.sh: No such file or directory

9073c3d360e126020a01deaf6fe15cdd.png

crontab 有一个坏毛病, 就是它总是不会缺省的从用户 profile 文件中读取环境变量参数,经常导致在手工执行某个脚本时是成功的,但是到 crontab 中试图让它定期执行时就是会出错。

修复:在脚本文件的开头,强制要求导入环境变量,可保万无一失。

这样的话,脚本的头部一律以下列格式开头:

#!/bin/sh

. /etc/profile

. ~/.bash_profile

c34c0be0985b75a25604dcbfb35b11cb.png

可以将备份的sql发到邮箱了,这样就可以备份很多东西了

6cc81d2116f04eddf4377c03b3f3372b.png

举报/反馈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值