继上次修复了crontab路径错误的问题后,我发现我的数据库备份文件夹下还是0个文件~
这到底是肿么了?
经过排查,我初步认为是我命令脚本里的"data +%s" 在作怪,因为有很多人说cron 里不支持 百分比"%" 这样的符号,需要进行转义(就像正则里一样~)。
所以,我的crontab 脚本变成了这样:
[root@PowerPC ~]# crontab -l
0 0 * * * root /usr/local/bin/mysqldump -A -C -u dumper | bzip2 -9 > /home/ftp/xzx/sql/mysql_`date +\%s`.sql.bz2
之后,为了方便调试,我把任务执行周期改为了一分钟一次。
果然,文件出现了~可是问题又来了,所有的数据包就是0字节。这是神马原因呢?
难道是因为权限不够?
我干脆用root身份去备份试试看~ 我把命令改成这样:
[root@PowerPC ~]# crontab -l
* * * * * root /usr/local/bin/mysqldump -A -C -uroot -pXXXXX | bzip2 -9 > /home/ftp/xzx/sql/mysql_`date +\%s`.sql.bz2
很遗憾,还是不行。依然0字节。
这个时候,我忽然觉得在命令前面加上root,重复去指定脚本执行用户可能是个错误。我删掉了root,当然也换回了默认备份数据库用户dumper,脚本如下:
[root@PowerPC ~]# crontab -l
* * * * * /usr/local/bin/mysqldump -A -C -u dumper | bzip2 -9 > /home/ftp/xzx/sql/mysql_`date +\%s`.sql.bz2
果然,这次成功了~见下:
[root@PowerPC ~]# ls /home/ftp/xzx/sql -lh
total 2.8M
-rw------- 1 root root 707K Aug 6 15:58 mysql_1312631881.sql.bz2
-rw------- 1 root root 707K Aug 6 15:59 mysql_1312631941.sql.bz2
-rw------- 1 root root 707K Aug 6 16:00 mysql_1312632001.sql.bz2
-rw------- 1 root root 707K Aug 6 16:01 mysql_1312632061.sql.bz2
恩,707Kb,这才是我想要的~
最终脚本如下,仅供参考:
[root@PowerPC ~]# crontab -l
0 0 * * * /usr/local/bin/mysqldump -A -C -u dumper | bzip2 -9 > /home/ftp/xzx/sql/mysql_`date +\%s`.sql.bz2
1 0 * * * chmod go-rwx /home/ftp/xzx/sql/*
这到底是肿么了?
经过排查,我初步认为是我命令脚本里的"data +%s" 在作怪,因为有很多人说cron 里不支持 百分比"%" 这样的符号,需要进行转义(就像正则里一样~)。
所以,我的crontab 脚本变成了这样:
[root@PowerPC ~]# crontab -l
0 0 * * * root /usr/local/bin/mysqldump -A -C -u dumper | bzip2 -9 > /home/ftp/xzx/sql/mysql_`date +\%s`.sql.bz2
之后,为了方便调试,我把任务执行周期改为了一分钟一次。
果然,文件出现了~可是问题又来了,所有的数据包就是0字节。这是神马原因呢?
难道是因为权限不够?
我干脆用root身份去备份试试看~ 我把命令改成这样:
[root@PowerPC ~]# crontab -l
* * * * * root /usr/local/bin/mysqldump -A -C -uroot -pXXXXX | bzip2 -9 > /home/ftp/xzx/sql/mysql_`date +\%s`.sql.bz2
很遗憾,还是不行。依然0字节。
这个时候,我忽然觉得在命令前面加上root,重复去指定脚本执行用户可能是个错误。我删掉了root,当然也换回了默认备份数据库用户dumper,脚本如下:
[root@PowerPC ~]# crontab -l
* * * * * /usr/local/bin/mysqldump -A -C -u dumper | bzip2 -9 > /home/ftp/xzx/sql/mysql_`date +\%s`.sql.bz2
果然,这次成功了~见下:
[root@PowerPC ~]# ls /home/ftp/xzx/sql -lh
total 2.8M
-rw------- 1 root root 707K Aug 6 15:58 mysql_1312631881.sql.bz2
-rw------- 1 root root 707K Aug 6 15:59 mysql_1312631941.sql.bz2
-rw------- 1 root root 707K Aug 6 16:00 mysql_1312632001.sql.bz2
-rw------- 1 root root 707K Aug 6 16:01 mysql_1312632061.sql.bz2
恩,707Kb,这才是我想要的~
最终脚本如下,仅供参考:
[root@PowerPC ~]# crontab -l
0 0 * * * /usr/local/bin/mysqldump -A -C -u dumper | bzip2 -9 > /home/ftp/xzx/sql/mysql_`date +\%s`.sql.bz2
1 0 * * * chmod go-rwx /home/ftp/xzx/sql/*