linux crontab 定时器,备份数据库、程序。新手初学。。。
一、crontab
1、查看crontab状态
命令:service crond status
2、编辑crontab
首先设置crontab 编辑器
修改/etc/profile文件
在文件尾部加入
EDITOR=vi
命令:crontab -e
格式:
# 注释
* * * * * command(分,时,天,月,年 命令) 。
如果是从windows上传到linux的crontab文件。编辑时需要 :set ff=unix,否则,定时器执行不成功
3、删除所有crontab 任务
crontab -r(此命令会删除所有的任务,如果要删除单条,请crontab -e 进入vi编辑器删除)
二、备份shell 脚本
思路:获取mysql所有数据库数组,mysqldump到指定文件夹。压缩所有数据库为一个包含日期的zip压缩包。
并删除文件夹内的sql文件。(脚本要排除mysql自带的mysql、information_schema、performance_schema 数据库)
脚本如下
#!/bin/sh
cd /var/www/mysql_backup
rm -rf * # 删除之前的数据库压缩包。
db_user="root"
db_pw="123456" #变量存数据库账号喻密码
DB_array=$(mysql -uroot -p123456 -Bse 'show databases') #获取一个包含所有数据库的字符串
arr=(${DB_array// /}) #
for db_name in ${arr[*]}
do
if [ $db_name == 'mysql' -o $db_name == 'information_schema' -o $db_name == 'performance_schema' ]
cd /var/www/mysql_backup
rm -rf * # 删除之前的数据库压缩包。
db_user="root"
db_pw="123456" #变量存数据库账号喻密码
DB_array=$(mysql -uroot -p123456 -Bse 'show databases') #获取一个包含所有数据库的字符串
arr=(${DB_array// /}) #
for db_name in ${arr[*]}
do
if [ $db_name == 'mysql' -o $db_name == 'information_schema' -o $db_name == 'performance_schema' ]
#删除自带数据库
then
continue
else
newdb_name=${db_name}_`date +%Y%m%d` #下载后的数据库命名。
cd /var/www/mysql_backup
mysqldump -u${db_user} -p${db_pw} ${db_name} > ${newdb_name}.sql
then
continue
else
newdb_name=${db_name}_`date +%Y%m%d` #下载后的数据库命名。
cd /var/www/mysql_backup
mysqldump -u${db_user} -p${db_pw} ${db_name} > ${newdb_name}.sql
#mysql dump -u用户 -p密码 数据库 > 下载后数据库名字
fi
done
zipname=mysql_`date +%Y%m%d`
zip -r ${zipname} ./* #创建压缩包
fi
done
zipname=mysql_`date +%Y%m%d`
zip -r ${zipname} ./* #创建压缩包
rm -f *.sql #删除所有sql文件。
注意:从windows编辑传过linux的脚本,需要进入vi 编辑器,set ff=unix。
否则文件名后,会多一个^M的玩意。。。。。