找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 713|回复: 1

[LINUX] Crontab定时备份

[复制链接]

3

主题

1

回帖

15

积分

新手上路

积分
15
发表于 2023-7-29 16:41:20 | 显示全部楼层 |阅读模式
本帖最后由 kkk 于 2023-7-29 16:42 编辑

脚本代码:
  1. #!/bin/bash
  2. # Name:bakmysql.sh
  3. # This is a ShellScript For Auto DB Backup and Delete old Backup
  4. #
  5. backupdir=/bak/mysqlbak
  6. time=` date +%Y%m%d%H `
  7. mysql_bin_dir/mysqldump -u root -ppwd database | gzip > $backupdir/database$time.sql.gz
  8. #
  9. find $backupdir -name "name_*.sql.gz" -type f -mtime +7 -exec rm {} ; > /dev/null 2>&1
复制代码


脚本说明:

backupdir mysql备份地址
root mysql用户名
pwd mysql密码
database 数据库名
mysql_bin_dir mysql的bin路径;
time=` date +%Y%m%d%H `也可以写为time="$(date +"%Y%m%d$H")"其中` 符号是TAB键上面的符号,不是ENTER左边的’符号,还有date后要有一个空格。
type f 表示查找普通类型的文件,f表示普通文件。
mtime +7 按照文件的更改时间来查找文件,+7表示文件更改时间距现在7天以前;如果是 -mmin +5 表示文件更改时间距现在5分钟以前。
exec rm {} \ 表示执行一段shell命令,exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{},一个空格和一个\,最后是一个分号。
/dev/null 2>&1 把标准出错重定向到标准输出,然后扔到/DEV/NULL下面去。通俗的说,就是把所有标准输出和标准出错都扔到垃圾桶里面;其中的& 表示让该命令在后台执行。


设置crontab定时执行
vi /etc/crontab #在最后一行中加入:
00 3 * * * root /usr/sbin/bakmysql.sh
#表示每天3点00分执行备份
/etc/rc.d/init.d/crond restart




回复

使用道具 举报

3

主题

1

回帖

15

积分

新手上路

积分
15
 楼主| 发表于 2023-7-29 16:43:24 | 显示全部楼层

  1. # 导出数据库
  2. /usr/bin/mysqldump -u root -ppwd database > database20160929.sql
  3. # 导入数据库
  4. mysql -u root -p database < database20160929.sql
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|魅力松滋 ( 鄂ICP备2024076975号-1 )

GMT+8, 2025-5-4 00:33 , Processed in 0.048716 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表