linux 系统是由 cron (crond) 系统服务来控制的。Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的。
由于使用者自己也可以设置计划任务,所以, Linux 系统也提供了使用者控制计划任务的命令 :crontab 命令。
1、编写shell脚本
/home/mysql_bak/new_mysql_biz_bak.sh
#!/bin/bash
source /etc/profile
source /root/.bash_profile
#定义变量参数
backday=`date +%Y%m%d`
rm -rf /home/mysql_bak/biz_data_file/$backday
rm -rf /home/mysql_bak/biz_data_file/*.tar.gz
mkdir /home/mysql_bak/biz_data_file/$backday
backdir=/home/mysql_bak/biz_data_file/$backday"/"
# 备份数据库信息
mysqldump -uroot -ppass@word -h 10.53.314.50 chain > $backdir"chain.sql"
# 保留15天内的数据备份
find /home/mysql_bak/biz_data_file/ -mtime +5 -name '*20*' -exec rm -rf {} \;
# 打包
cd /home/mysql_bak/biz_data_file
# 打包
cd /home/mysql_bak/biz_data_file
tar zcvf daas_$backday".tar.gz" $backday
# 上传hdfs
hdfs dfs -rm /mysql_bak/biz_data_file/daas_$backday".tar.gz"
hdfs dfs -put /home/mysql_bak/biz_data_file/daas_$backday".tar.gz" /mysql_bak/biz_data_file/
exit 1;
2、查看定时任务:
crontab -l
3、添加定时任务
crontab -e (点击回车后会弹出一个编辑界面,添加脚本进去,会自动检查,无需重启cron服务)
例如:crontab -e 10 2 * * * /bin/bash /home/mysql_bak/new_mysql_biz_bak.sh
格式如下:
minute hour day-of-month month-of-year day-of-week commands
合法值为:00-59 00-23 01-31 01-12 0-6 (0 is sunday)
除了数字还有几个特殊的符号:"*"、"/"和"-"、","
"*"代表所有的取值范围内的数字
"/"代表每的意思,"/5"表示每5个单位
"-"代表从某个数字到某个数字
","分开几个离散的数字