任何人都可以告诉我为什么这不起作用:
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.oYrOhTNQ48 installed on Wed Feb 19 17:10:46 2014)
# (Cron version -- $FreeBSD: src/usr.sbin/cron/crontab/crontab.c,v 1.22.2.1.6.1 2008/10/02 02:57:24 kensmith Exp $)
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin:/usr/home/dennis/bin
SHELL=/usr/local/bin/tcsh
TZ=GMT
## backup
0 */4 * * * /usr/local/mysql-5.1.50/bin/mysqldump -e -u username -ppassword sm | /usr/bin/gzip > /tmp/database.`date +%m-%d-%Y-%T`.sql.gz
* * * * * /usr/bin/touch /usr/home/dennis/thisworks
* * * * * env > ~/env.output
不幸的是我无法访问日志文件..因此我看不到任何错误。手动它工作正常。如果我拿出date +%m-%d-%Y-%T
它也有效。我甚至尝试了完整的路径,没有运气。
一点帮助?
答案 0 :(得分:0)
你有shell访问权限吗?
最好的方式来运行
/usr/local/mysql-5.1.50/bin/mysqldump -e -u username -ppassword sm | /usr/bin/gzip > /tmp/database.`date +%m-%d-%Y-%T`.sql.gz
在shell中。然后你会看到错误是什么。
一旦bash命令工作,然后将其移动到cron并只应用日期设置。
答案 1 :(得分:0)
我遇到了同样的问题,最后通过转发date命令中的%字符来修复它。
crontab中的行应保持不变,只需更改:
`date +%m-%d-%Y-%T`
到
`date +\%m-\%d-\%Y-\%T`
如前所述,您应该从不编辑系统crontab文件。您应该使用:
crontab -e
答案 2 :(得分:0)
对我来说,这样做:
首先使用以下命令将密码和DBDescription设置为加密文件: mysql_config_editor set --login-path = DBDescription --host = DB#.pair.com --user = DBUser --port = 3306 --password
看看是否有效: mysql_config_editor print --login-path = DBDescription
输出将是这样的:
[DBDescription]
user = root
password = *****
host = localhost
port = 3306
现在创建一个shell脚本:
#!/bin/sh
#Set paths
MYDUMP=/usr/local/bin/mysqldump
BACKUPDIR=/usr/local/www/apache24/data
MYGZIP=/usr/bin/gzip
MYFIND=/usr/bin/find
#Dump
$MYDUMP --login-path=DBDescription DBNAME > $BACKUPDIR/mysql-DBNAME.`date '+%d-%B-%Y--%Hh'`.sql
#GZIP the file
$MYGZIP $BACKUPDIR/mysql-DBNAME.`date '+%d-%B-%Y--%Hh'`.sql
最后用cron创建一份工作。 我在这里使用:
# nano /etc/crontab
在文件的最后一行添加:
00 04 * * * root /usr/local/www/apache24/data/mybackup.sh
基于以下信息:link.