mysqldump自动备份脚本的使用

从百度copy来一个备份的脚本,做了简单的修改:
#!/bin/bash  

# Backup file is saved in the directory, if it does not exist Create  
basepath='/database/3306/backup/'  
   
if [ ! -d "$basepath" ]; then  
  mkdir -p "$basepath"  
fi  
   
mysqldump -uroot -p''  -S /tmp/mysql_3306.sock xuning --tables  auto  >$basepath/sit3_ccbak_$(date +%F).sql
   
# Delete the backup data to 7 days before  
find $basepath -mtime +7 -name "*.sql" -exec rm -rf {} \; 


find /database/3306/backup/ -mtime +7  -name "*.sql" -exec rm -rf {} \;

-----------------------------------------------------------------------------------------------
直接执行这个脚本报错:
[root@172 backup]# sh sit3_cc.sh
: command not found
: command not found
: command not found
: command not found
'it3_cc.sh: line 9: syntax error near unexpected token `
'it3_cc.sh: line 9: `fi

百度查看原因可能是在windows系统下编辑脚本的原因导致的编码同。所有的空行都会报错,后把所有的空行删除后搞定,也可以直接在linux系统上编辑文本。相关网址 http://blog.csdn.net/xbnlkdbxl/article/details/52945608

后发现执行脚本里面mysqldump命令需要自己输入密码。
百度查下脚本下执行mysqldump脚本化的使用方法 ,需要自己的家目录下创建一个隐藏文件
[root@localhost backup]# vim /root/.my.cnf
[root@localhost backup]# cat /root/.my.cnf
[mysqldump]
user=root
password=
相关网址 http://blog.csdn.net/aiqixiao1015/article/details/50553425
这样在命令中不要指定密码-p字段

之后的脚本还是会报错。报错是find:bin/sh^M: bad interpreter: No such file or directory
后来发现还是因为编码的格式不对导致的
可以:set ff 查看编码
http://blog.csdn.net/xbnlkdbxl/article/details/52945608
--find
find /database/3306/backup/ -mtime +7 -name "*.sql" -exec rm -rf {} \;
- exec <执行指令>:假设find指令的回传值为True,就执行该指令;
-mtime<24小时数>:查找在指定时间曾被更改过的文件或目录,单位以24小时计算;
之后写定时任务
crontab -e
22 22 * * * sh /database/che/backup/sit3_ccbak.sh

你可能感兴趣的:(mysqldump自动备份脚本的使用)