一、启动mysql数据库
/
usr
/
local
/
mysql
/
bin
/
mysqld_safe
-
user
=
mysql
&
二、编写sql脚本
SET
@TableName
=
CONCAT(
'
sendrecord
'
,DATE_FORMAT(DATE_SUB(CURDATE() ,INTERVAL
1
month
),
'
%Y%m
'
));
SET
@BeginTime
=
DATE_SUB(DATE_SUB(CURDATE(), INTERVAL DAYOFMONTH(CURDATE())
-
1
day
),INTERVAL
1
month
);
SET
@EndTime
=
DATE_SUB(CURDATE(), INTERVAL DAYOFMONTH(CURDATE())
-
1
day
);
SET
@CreateSqlStr
=
CONCAT("
CREATE
TABLE
`",
@TableName
,"`
AS
SELECT
*
FROM
sendrecord
WHERE
sendtime
>
'
",cast(@BeginTime as char)," 00:00:00
'
and
sendtime
<
'
",cast(@EndTime as char)," 00:00:00
'
");
SELECT
@CreateSqlStr
;
PREPARE
CR
FROM
@CreateSqlStr
;
EXECUTE
CR;
SET
@DeleteSqlStr
=
CONCAT("
DELETE
FROM
sendrecord
WHERE
sendtime
>
'
",cast(@BeginTime as char)," 00:00:00
'
and
sendtime
<
'
",cast(@EndTime as char)," 00:00:00
'
");
SELECT
@DeleteSqlStr
;
PREPARE
DE
FROM
@DeleteSqlStr
;
EXECUTE
DE;
SET
@CommitSqlStr
=
CONCAT("
COMMIT
");
SELECT
@CommitSqlStr
;
PREPARE
CO
FROM
@CommitSqlStr
;
EXECUTE
CO;
三、编写sh脚本
#
!/bin/sh
PATH
=/
opt
/
mono
/
bin
:/
usr
/
kerberos
/
sbin
:/
usr
/
kerberos
/
bin
:/
usr
/
local
/
sbin
:/
usr
/
local
/
bin
:/
sbin
:/
bin
:/
usr
/
sbin
:/
usr
/
bin
:/
usr
/
X11R6
/
bin
:/
usr
/
local
/
java
/
bin
:/
root
/
bin
:/
usr
/
local
/
mysql
/
bin
export PATH
mysql
-
uxuanwu
-
p123456
<<
EOF
use
xuanwu;
source
/
root
/
Toby
/
create
.
sql
此脚本需注意必段段导入path变量才行,mysql连接-u-p后面跟的值无需空格才行的
四、启动crontab
56
16
16
*
*
/
root
/
Toby
/
ts
.
sh
>>
/
tmp
/
backup
.
txt
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:
crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除没个用户的cron服务
crontab -e //编辑某个用户的cron服务
这个格式的前一部分是对时间的设定,后面一部分是要执行的命令,如果要执行的命令太多,可以把这些命令写到一个脚本里面,然后在这里直接调用这个脚本就可以了,调用的时候记得写出命令的完整路径。时间的设定我们有一定的约定,前面五个*号代表五个数字,数字的取值范围和含义如下:
分钟 (0-59)
小時 (0-23)
日期 (1-31)
月份 (1-12)
星期 (0-6)//0代表星期天
除了数字还有几个个特殊的符号就是"*"、"/"和"-"、",",*代表所有的取值范围内的数字,"/"代表每的意思,"*/5"表示每5个单位,"-"代表从某个数字到某个数字,","分开几个离散的数字