centos6 mysql自动备份_CentOS下mysql自动备份数据库 crontab定时任务

数据库定时备份:第一步、创建 /root/mysql_dump/mysql_back.sh

mkdir -p /root/mysql_dump/

mkdir -p /storage/wwwroot/data_back/

内容如下:

backupdir='/storage/wwwroot/data_back/'time=`date +%Y%m%d_%H%M%S_%N`mysqldump --opt -uroot -p'123456' dbname | gzip > $backupdir/dbname_$time.sql.gz

如果权限不足,给权限(不一定需要):

chmod +x /root/mysql_dump/mysql_back.sh

第二步、修改定时任务

#crontab -l  先查看当前的任务列表#crontab -e  编辑

# 添加一行,root用户不需要指定执行的用户名, 比如 3点01分备份

1 3 * * * /root/mysql_dump/mysql_back.sh

# 不一定需要重启crontab服务

# service crond restart

cron 服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次/etc/crontab。因此我们配置这个文件也能运用cron服务做一些事情。用crontab配置是针对某个用户的,比如crontab -e,实际上修改的配置文件是/var/spool/cron/root(推荐) ,而编辑/etc/crontab是针对系统的任务。

其他问题补充:* 1、重启crontab的时候如果提示:crond: unrecognized service安装计划任务:

yum -y install vixie-cron

* 2、现在可以手动测试下我们上面的脚本是否能正常运行:

sh /root/mysql_dump/mysql_back.sh

如果你是在windows平台上编辑好的 sh文件,然后ftp上传到linux服务器后,可能会出现下述问题:No such file or directory这个其实是换行的问题造成的,win下换行是 \r\n,而linux的换行只是\n,\r在linux下是不显示的,所以一般不容易发现这个问题。解决方法:把我们的这个文件格式从 dos 修改成 unix 即可。

vi /root/mysql_dump/mysql_back.sh:set ff

回车,显示fileformat=dos,重新设置下文件格式:

:set ff=unix

保存退出::wq 或 :x!

3、还原数据库的方法:

# 登录  mysql -uroot -p123456   -- 热备只是备份数据库内部的表,以及数据  use dbname;  source /usr/local/mysql_dump/dbname_dump.sql;exit;

*4、cron服务是linux的内置服务,但它不会开机自动启动。可以用以下命令启动和停止服务:

/sbin/service crond start/sbin/service crond stop/sbin/service crond restart/sbin/service crond reload

以上1-4行分别为启动、停止、重启服务和重新加载配置。

要把cron设为在开机的时候自动启动,在/etc/rc.d/rc.local脚本中加入/sbin/service crond start即可。

名称 : crontab使用权限 : 所有使用者使用方式 :crontab file [-u user]-用指定的文件替代目前的crontab。crontab-[-u user]-用标准输入替代目前的crontab.crontab-l[user]-列出用户目前的crontab.crontab-e[user]-编辑用户目前的crontab.crontab-d[user]-删除用户目前的crontab.crontab-c dir- 指定crontab的目录。crontab文件的格式:M H D m d cmd.

crontab基本格式:*  *  *  *  *  command分  时  日  月  周  命令M: 分钟(0-59)。每分钟用*或者 */1表示H:小时(0-23)。(0表示0点)D:天(1-31)。m: 月(1-12)。d: 一星期内的天(0~6,0为星期天)。

补充一个定时任务脚本:功能:每1分钟循环执行某个目录下的所有php文件。

#/home/wwwroot/default/admin/task/1m.shWebsite_url="http://www.xxx.net/admin/task/1m/"Folder_A="/home/wwwroot/default/admin/task/1m"for file_a in ${Folder_A}/*; do    temp_file=`basename $file_a`    #echo ${Website_url}${temp_file}    #wget -t 重试次数 -T 超时秒数 -b 后台执行    if [ ${temp_file:0-4} = '.php' ]; then     wget -b -q -t 2 -T 50 ${Website_url}${temp_file}    fi    #wget -q ${Website_url}${temp_file}done

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值