Linux下mysql数据库如何定期备份与删除

Linux下mysql数据库如何定期备份与删除,第1张

首先,创建备份文件夹mkdir /mysql/mysqldata_bakeup;创建并编辑文件在路径 /usr/sbin/bakmysql,命令:vi /usr/sbin/bakmysql。此时会在/usr/sbin/路径下创建bakmysql文件,并进入bakmysql编辑状态,接着输入fn = ` date +%Y%m%d ` tar zcvf /mysql/mysqldata_bakeup/mysql$fn.tar.gz /mysql/data 然后修改文件bakmysql属性,使其可执行chmod +x /usr/sbin/bakmysql 修改/etc/crontab vi /etc/crontab 进入编辑状态,在最下面添加:01 3 * * * root /usr/sbin/bakmysql

01 3 是每天凌晨3:01执行 bakmysql文件懂了吗?

没用过postgres,原理应该一样。应该不能直接写那个psql语句。shell脚本中执行mysql 语句的方法,参考下。

方法一:使用文件标签EOF重定向的方法的:

#!/bin/bash

user=root

pass=123456

db=mysql

tablename=user

mysql -s --line-numbers -f -u$user -p$pass -D $db --delimiter="" -E<

--SELECT host,user from $tablename order by 1

SELECT host,user from $tablename order by 1

quit

EOF

优点:sql与shell 可以分离,写sql时不用关系shell。

方法二:使用mysql参数的方法

mysql -u$user -p$pass -D $db -e "select host from user"

当然,可以通过将传参的方式来传递 -e 后面的语句。

方法三 将每一步需要执行的语句保存到 tmp.sql 中,最后在使用

mysql -u uname -p pwd <tmp.sql

给个思路:

编写自动删除文件的脚本,关键部分是使用find 命令查找到符合条件的文件并将其删除;

加入crontab,每天23:00运行脚本

PS:  如果删除的文件没有备份或者对应路径下有其他重要文件,则不建议这样做,毕竟谁都不敢保证自动运行的东西不会抽风……自己考虑下要不要用吧


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/8982215.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-23
下一篇 2023-04-23

发表评论

登录后才能评论

评论列表(0条)

保存