Linux定时自动备份数据库并上传至FTP的脚本linux操作系统

2024-07-23

Linux定时自动备份数据库并上传至FTP的脚本linux操作系统(通用3篇)

篇1:Linux定时自动备份数据库并上传至FTP的脚本linux操作系统

在大量工作量的情况下我们总希望能让系统自动完成一些功能,像数据库备份如果人工天天做也麻烦,今天我们提供一个在linux自动备份数据库并上传到远程服务器的有效方法,

代码如下复制代码

#!/bin/bash

#FTP信息

FTP_IP=

FTP_USER=

FTP_PASS=

#备份数据库

/etc/init.d/mysqld stop

MySQLBakName=MySQL_$(date +”%Y%m%d”).tar.gz

tar zcf /home/backup/$MySQLBakName /var/lib/mysql

/etc/init.d/mysqld start

#备份网站

WebBakName=Web_$(date +%Y%m%d).tar

tar cf /home/backup/$WebBakName /home/www

#操作FTP

ldMySQL=MySQL_$(date -d -1day +”%Y%m%d”).tar.gz

ldWeb=Web_$(date -d -1day +”%Y%m%d”).tar

cd /home/backup/

/usr/bin/ftp -v -n $FTP_IP << EOF

user $FTP_USER $FTP_PASS

type binary

put $MySQLBakName

put $WebBakName

delete $OldMySQL

delete $OldWeb

bye

EOF

rm -rf /home/backup/*.tar*

篇2:Linux定时自动备份数据库并上传至FTP的脚本linux操作系统

#!bin/sh

mkdir /mysqlbackup/`date +%Y-%m-%d`

mysqldump -uroot -p123456 -h192.168.1.1 ap_account -B -R > /mysqlbackup/`date +%Y-%m-%d`/ap_account.sql

sleep 2

.........

HOST=172.20.225.151

USER=root

PASS=123456

echo “Starting to sftp…”

lftp -u ${USER},${PASS} sftp://${HOST} <

cd mysqlbackup/

mkdir `date +%Y-%m-%d`

cd `date +%Y-%m-%d`

lcd /mysqlbackup/`date +%Y-%m-%d`

put ap_account.sql

echo “Over…”

bye

EOF

设置脚本运行权限:chmod 777 sqlbak.sh -R

2、修改/etc/crontab #添加计划任务

vi /etc/crontab

例如:

01 2 * * 1 root /sqlbak.sh每周五凌成2点开始自动执行sqlbak.sh

3、重新启动crond使设置生效

/etc/rc.d/init.d/crond restart

chkconfig crond on #设为开机启动

service crond start #启动

篇3:Linux定时自动备份数据库并上传至FTP的脚本linux操作系统

关键词:数据备份 Linux Rsync

中图分类号:TP309.3文献标识码:B 文章编号:1673-8454(2009)19-0027-02

校园网建设的工作重心主要集中在保证网络的正常运行和提供良好的网络服务。除此以外,数据备份也是网络管理员的重要职责之一。对数据进行自动远程备份是保证数据安全的有效方法。

一、现状

校园网中的应用系统,比如计费系统和电子邮件系统中积累了大量的用户数据,包括用户的费用和邮件等重要信息,对于此类敏感又很重要的数据一定要做好备份。这些数据具有实时性的特点,即信息随时都在发生动态变化。因此,要求能够对数据做到周期性自动跟踪,反之,需要恢复数据时能够恢复到离故障点较接近的时间点,丢失的数据尽可能少且在大多数用户的可接受范围内。

目前我校没有为备份提供专用的存储空间,在这种情况下,可以使用一台性能相对稳定并且磁盘空间较大的已被替换下来的服务器,作为存储平台。同时能够找到一种相对灵活的备份方案实现备份需求。但是用什么方法将数据传输过来呢?

二、选择方案

由于我校大多数应用系统都使用Linux操作系统,在Linux操作系统中数据备份方法通常有:(1)Linux系统中常用的备份工具tar、dump、restore等,但这些工具大多数适合本地备份,对不同主机之间的远程备份往往力不从心。(2)选择商业化的备份和镜像产品,但是这种产品通常价格昂贵。对于价格高的项目需要审批,从立项到实施周期长。(3)编写脚本,使用FTP等工具定时传输数据,但是这种方法的缺点是每次都要将所有文件和数据重新传输一遍,将要备份的文件和已备份文件没有比较,不考虑哪些文件是新增加的和更新的。当需要备份的数据量较大时,更是需要较长时间的网络传输,效率低。(4)使用自由软件——远程传输工具Rsync,Rsync是一个小巧而灵活但是功能强大的远程备份工具,它使用“Rsync演算法”提供一个非常快速的文件传输方法,使得本地和远端主机间的文档达到同步。Rsync只有第一次备份时需要传输所有数据文件,以后传输数据时会比较两组数据,相同的不再传输,只传输发生变化的数据部分,因此速度相当快,而且节省网络带宽。由此可以看出,选择Rsync做备份工具是最佳选择。

三、制定备份策略

实时数据备份对服务器和网络带宽的要求较高,因为不停地备份会降低服务器性能,而且会造成网络负荷过重。与提供良好的网络服务相比,数据备份应该是第二位的,当出现争抢资源时应该让位于网络服务。因此需要制定一个折中的策略——选择一个合适的时间间隔。白天服务器的访问量大,用户操作频繁,此时不适宜做备份,而晚上的访问量相对较低,系统和网络都处于空闲的状态,此时做备份既可利用系统的低使用率也不会增加网络负载。因此,选择每天凌晨备份,一天的数据差别在用户的可接受范围内。

四、实施方法

Rsync是以服务器/客户端的方式工作的,较为特殊的一点是Rsync服务器和客户端都使用同一个程序。启动服务器的时候需要指明以daemon方式运行,表明启动的是服务器。而启动客户端程序的时候则不需要指定daemon选项。

每台需要备份数据的服务器在设置上都类似,因此以一台服务器和一组待备份数据为例。例如,需要备份数据的服务器IP地址为10.0.0.1,该主机称之为Rsync-server,程序以daemon方式运行;作为存储平台的主机IP地址为10.0.0.200,运行Rsync客户端程序,该主机称之为Rsync-client。Rsync程序默认运行在TCP的873端口,即Rsync-server会监听873端口,等待对方的rsync连接。当以认证方式登录时,Rsync-server与Rsync-client连接时会检查密码是否相符,如果相符则开始文件传输。

1.Rsync-server(10.0.0.1)的配置

Rsync-server需要设置以下几项:

明确需要建立备份的目录

设置/etc/xinetd.d/rsync

设置/etc/rsyncd.conf

设置密码文件

(1)目录/udata以及子目录中存有用户数据,需要备份。

(2)设定/etc/xinetd.d/rsync,确保文件中两个参数:

disable = no

server_args = --daemon

使用命令service xinetd restart,使设置生效,使rsync服务进程以daemon方式运行rsync。

(3)Rsync服务器最重要最复杂的就是配置文件/etc/rsyncd.conf,这个配置文件控制着Rsync服务器的认证、访问、日志、可用模块等信息。该文件由一个或多个模块结构组成。一个模块定义是以方括弧中的模块名开始,直到下一个模块名或者文件结束。每个模块对应一个需要备份的目录。配置文件以行为单位,模块中的行是一些参数赋值或注释等。

uid = root

read only = yes

list = no

log file = /var/log/rsyncd.log

pid file = /var/run/rsyncd.pid

hosts allow = 10.0.0.200

hosts deny = 0.0.0.0/32

[userdata]

path = /udata

ignore errors

read only = yes

list = no

auth users = secretuser

secrets file = /etc/rsyncd.secrets

前五行指定在daemon模式下运行的Rsync-server是以root用户的只读方式运行,指定日志和运行时的进程ID的存放位置,以及允许连接的Rsync客户端地址等。这些选项是全局的。在模块[userdata]中指定了需要备份的目录,忽略了一些无关的IO错误,不允许列文件,备份时需要认证,及密码文件的存放位置等。

(4)密码文件的格式很简单,账号:密码。例如,/etc/rsyncd.secrets的内容可设为:

secretuser:secretpasswd123

注意,一定要设置密码文件的属主和权限,否则备份会失败。

#chown root.root rsyncd.secrets

#chmod 600 rsyncd.secrets

2.Rsync-client(假设主机地址为10.0.0.200)的配置

Rsync需要设置如下几项:

规划一个容量足够大的独立分区,并设置好存储目录

编写备份指令文件

将指令加入crontab列表中,完成定时备份

(1)设置存储目录为/backup。

(2)编辑文件rsync-restore,并存放在某一目录下,比如/目录下,文件内容为:

rsync-tvzrp-progress-delete secretuser@10.0.0.1::userdata /backup-passwd-file=/etc/rsyncd.pass

命令参数-tvzrp中的v是将传输过程显示到屏幕中,z是传输时压缩数据,r是逐级保留目录及目录下文件,tp是保持文件原有属性如权限、时间等参数。-progress指示详细的进度。-delete删除在Rsync-client上存在而Rsync-server上不存在的额外文件,精确保存副本。这一选项对邮件服务器很有实施价值,如果不删除已经不存在的文件,比如用户邮件,当恢复数据时,被用户删除过的邮件又会出现在用户的邮箱当中,这种莫名其妙的事情发生会给用户造成困扰。-passwd-file:指定用于rsync服务器的用户验证密码。/etc/rsyncd.pass文件中指定访问密码,内容为:secretpasswd123(与Rsync-server的/etc/rsyncd.secrets文件中密码一致),设置文件权限为读写 #chmod 600 rsyncd.pass。

注意,要修改rsync-restore文件的权限,否则备份不会成功。

#chmod 755 rsync-restore

(3)使用crontab命令定时备份文件,编辑如下内容:

0 2 * * * /rsync-restore

这样,每天凌晨2点Rsync-server就将待备份目录/udata以及目录下的文件以目录树结构做镜像自动备份到Rsync-client的/backup目录下。

五、结束语

当需要恢复数据时,在保证重新架设的应用服务程序与原服务程序保持一致的前提下,只要将备份的整个目录树恢复到服务器相应的目录下即可。注意,备份实施过程中设置rsync相关文件时,一定要设置使用权限,否则将导致备份失败。一般来说,备份用户数据比备份系统数据更频繁一些,合理规划备份方案,明确备份的内容、备份时间及备份方式,并进行适时备份可以有效防止重要数据的丢失。在日常工作中,备份是管理员的一项重要工作,掌握好备份技巧对管理员的工作很有帮助。

参考文献:

[1]用Rsync对网站进行镜像备份[EB/OL]. http://fanqiang.chinaunix.net/a6/b7/20010908/1305001258_b.html

[2]Linux下的远程备份(镜像)工具Rsync[EB/OL]. http://wuwd.blog.ubuntu.org.cn/2007/12/22/

上一篇:女子,文字,时光下一篇:2023年文明村镇创建工作总结