我写了个每天自动执行的shell脚本
目的是去备份mysql数据库
[code="java"]
filename="date +%Y%m%d"
mysqldump --opt databasename -u root | gzip > /var/mysqlbackup/test_$filename.gz
[/code]
执行上面shell会报错
[quote]
/etc/cron.daily/autobackup.sh: line 2: /var/mysqlbackup/test_$filename.gz: ambiguous redirect
mysqldump: Got errno 32 on write
[/quote]
我不用日期做文件名,就能正常备份。
请大师指点!!
如果就用shell,下面的简单了吧!
DATE=date +%Y-%m-%d
(注意这里的不是单引号,而是esp下面的那个键)
echo $DATE
shell脚本不是那么写的,建议先看看shell中怎么得到年月日,再看看怎么连接字符串和变量
我都给你写好函数了,贴心吧!
#include
void getCurrTime(char* timestr,char* fmt)
{
time_t ticks;
struct tm *t;
ticks = time(0);
t= localtime(&ticks);
strftime(timestr,127,fmt,t);//Y%为四位年份
}
使用:
char logFileDate[10];
getCurrTime(logFileDate,"%Y-%m-%d");//设置日志文件日期
你可以根据这个函数,在一个c程序里面得到当前日期,生成文件名,然后使用system来调用mysqldump 命令行