日积月累--小技巧之四
续上.....
I. 编程的目的就在于免去大量的人工劳动,让机器代替我们做一些自动化的工作。使用Linux就免不了接触到Cron,用来计划任务。数据库是一个系统的心脏,这么说一点儿也不过,如下使用cron来备份数据库:
/root/database_backup.sh
mysqldump -uroot -proot test > /root/database/test_`date '+%Y%m%d'`.sql
上命令假设数据库用户名密码都为root,数据库名为test,备份的数据库格式为:test_20130930.sql
使用如下命令进行计划任务:
crontab -e
0 3 * * * /root/database_backup.sh
以上指定每天的凌晨三点进行数据库的备份任务。
II. 有时候我们仅需要数据表的一部分数据,却不得不将整个数据表导出,别急Mysql的命令提供了这种功能。
导出goods表中id大于1000的数据
mysqldump -uroot -proot --where="id>1000" > D:/goods.sql
III. 使用mysqldump导出的sql文件默认包含drop table, create table语句;许多时候会带来隐患,如下可指定文件中不用包含drop-table,create-table语句。
mysqldump -uroot -proot --skip-add-drop-table --no-create-info tabasename tablename > tablename.sql
IV. 使用cron进行计划任务,无可避免会使用.sh文件。编辑.sh文件时,在窗口中使用vi命令即可,千万不能使用windows下记事本编辑的.sh文件,因为记事本编辑过的文件换行符会给.sh文件的执行带来麻烦。比如使用该文件生成的文件夹名称会存在乱码:photoM?M,诸如这样。很可能就是记事本编辑过的缘故。
V. 备份时一个永远都会需要的工作。数据量很小时,完整备份不会存在问题;但当数据量巨大到难以承受时,增量备份就是个不错的选择。rsync就是这个一个工具。
yum install rsync // 如果系统没有安装rsync
rsync -ab /var/www/test/ /root/test/ // 使用rsync进行增量备份,将/var/www/test目录备份到/root/test目录
建议使用cron进行定期增量备份。
Good Bye, Readers. Enjoy Your Time!