crontab不使用日期条目

时间:2014-02-24 17:33:09

标签: crontab freebsd

任何人都可以告诉我为什么这不起作用:

# 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它也有效。我甚至尝试了完整的路径,没有运气。

一点帮助?

3 个答案:

答案 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.