mysql backup

#include "stdio.h"
#include "stdlib.h"
#include "time.h"
#include "string.h"
#include <fcntl.h>
#include <sys/types.h>

void backup(void)
{
    char name[20];
    char cmd[256];
    time_t   now;
    struct tm  *b;

    memset(name,0,20);
    memset(cmd,0,256);

    time(&now);
    b = gmtime(&now);

    strcat(name,"backup-");
    sprintf(name + strlen(name),"%d",1900+b->tm_year);
    sprintf(name + strlen(name),"%d",b->tm_mon+1);
    sprintf(name + strlen(name),"%d",b->tm_mday);
    //printf("%s",name);
    //printf("\n");

    strcat(cmd,"mysqldump --user=hlkj --password=hlkj --lock-all-tables --all-databases > ");
    strcat(cmd,name);
    strcat(cmd,".sql\n");

    strcat(cmd,"tar zcvf ");
    strcat(cmd,name);
    strcat(cmd,".tar.gz ");
    strcat(cmd,name);
    strcat(cmd,".sql\n");

    strcat(cmd,"mv -f ");
    strcat(cmd,name);
    strcat(cmd,".tar.gz  /var/www/html/MySQL_Backup\n");

    strcat(cmd,"rm -f ");
    strcat(cmd,name);
    strcat(cmd,".sql");

    //printf("%d,%s",strlen(cmd),cmd);
    //printf("\n");

    system(cmd);

}
int checkOnly()
{
    const char filename[]  = "./_lock";
    int fd = open (filename, O_WRONLY | O_CREAT , 0644);
    int flock = lockf(fd, F_TLOCK, 0 );
    if (fd == -1) {
        return 0;
    }
    if (flock == -1) {
        return 0;
    }
    return 1;
}

int main(int argc, char *argv[])
{
    int i=0;
    if(checkOnly())	printf("this running......  !\n");
    else
    {
	printf("this is running,plese closed and restart !\nexit this!\r\n") ;
        exit(0);
    }

    while(1)
    {
        i++;
        sleep(3600);

        if(i>24)
        {
            i=0;
            backup();
        }
    }
    return 0;
}

//mysqldump --user="hlkj" --password="hlkj" --lock-all-tables --all-databases > backup.sql
//tar zcvf name.tar.gz backup.sql
//rm -f backup.sql
//mv  -f name.tar.gz  /var/www/html/MySQL_Backup/name.tar.gz

时间: 2024-12-06 06:30:18

mysql backup的相关文章

MySQL backup - How to backup a MySQL database

MySQL backup FAQ: How do I backup a MySQL database? I can't speak about backing up MySQL databases that are modified twenty-four hours a day seven days a week, but on all the MySQL databases I currently work with, there are always times when I can gu

keepalived+mysql backup服务器可ping通过vip但telnet vip+3306失败问题

环境: OS:CentOS 7_X64 数据库:mysql-5.7 MASTER:192.168.119.23 BACKUP:192.168.119.24 VIP:192.168.119.138 keepalived+mysql搭建过程的详细配置就不描述了,网上很多写得很详细的配置文档自己可以去参考,我们直奔主题 . 这里主要分享在下本人在搭建公司的keepavlied+mysql出现一个很奇怪的现象,当A服务器为master主时邦定VIP 192.168.119.138,在A本机上可以正常pi

mysql backup &amp; recovery

备份数据库非常重要,这样您就可以恢复数据,并在发生问题时重新启动并运行,例如系统崩溃,硬件故障或用户错误地删除数据. 在升级MySQL安装之前,备份也是必不可少的保护措施,它们可用于将MySQL安装转移到另一个系统或设置复制从属服务器. 备份和还原的类型和方法有多种,可参考官方文档:https://dev.mysql.com/doc/mysql-backup-excerpt/8.0/en/backup-and-recovery.html 具体实用操作命令转自:https://www.cnblog

Linux shell脚本--mysql全备计划任务

Linux下mysql的全备计划任务_shell小脚本,适用于数据量较小的mysql. #!/bin/bash PORT='5001' USER='admin' PASSWD='admin' SOCKED="/data/socket/mysql${PORT}.sock" BACKUP_FILE='/data/mysql/backup'  #注意磁盘空间情况 BACKUP_SAVE_DAYS='2' #删除N天之前的 CMD1='show databases;' Time=`date +

MySQL备份命令mysqldump参数说明与示例

1. 语法选项说明 -h, --host=name主机名 -P[ port_num], --port=port_num用于连接MySQL服务器的的TCP/IP端口号 --master-data这个选项可以把binlog的位置和文件名添加到输出中,如果等于1,将会打印成一个CHANGE MASTER命令:如果等于2,会加上注释前缀.并且这个选项会自动打开--lock-all-tables,除非同时设置了--single-transaction(这种情况下,全局读锁只会在开始dump的时候加上一小段

mysql备份恢复详解

前言 为什么需要备份数据? 数据的备份类型 MySQL备份数据的方式 备份需要考虑的问题 设计合适的备份策略 实战演练 使用cp进行备份 使用mysqldump+复制BINARY LOG备份 使用lvm2快照备份数据 使用Xtrabackup备份 总结 前言 我们试着想一想, 在生产环境中什么最重要?如果我们服务器的硬件坏了可以维修或者换新, 软件问题可以修复或重新安装, 但是如果数据没了呢?这可能是最恐怖的事情了吧, 我感觉在生产环境中应该没有什么比数据跟更为重要. 那么我们该如何保证数据不丢

分享一个MySQL分库分表备份脚本(原)

分享一个MySQL分库备份脚本(原) 开发思路: 1.路径:规定备份到什么位置,把路径(先判断是否存在,不存在创建一个目录)先定义好,我的路径:/mysql/backup,每个备份用压缩提升效率,带上时间方便整理 2.取数据库:抓取数据库名称,我用的awk和grep配合取数据库的名称(如果想按照表备份可以再细化一下)注意要用mysql -e选项 这样才能做成脚本 3.系统环境变量:因为用到了函数,所以非系统内置的命令 最好在脚本里面用 . /etc/profile  把系统当前的环境变量传过来

mysql数据库备份脚本

自动备份Mysql脚本: 如下脚本为mysql自动备份脚本,仅供参考,可以根据实际情况修改. #!/bin/sh #auto backup mysql #20170329 #Define PATH定义变量 BAKDIR=/data/backup/mysql/`date +%Y-%m-%d` MYSQLDB=webapp MYSQLPW=backup MYSQLUSR=backup #must use root user run scripts 必须使用root用户运行,$UID为系统变量 if

mysql全库备份/增量备份脚本

http://hongge.blog.51cto.com/ 生产环境中Mysql数据库的备份是周期性重复的操作,所以通常是要编写脚本实现,通过crond计划任务周期性执行备份脚本 mysqldump备份方案: 周日凌晨1点全库备份 周一到周六凌晨每隔4个小时增量备份一次 设置crontab任务,每天执行备份脚本 # crontab –e #每个星期日凌晨1:00执行完全备份脚本 0 1 * * 0 /root/mysqlfullbackup.sh >/dev/null 2>&1 #周一