Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 按当前日期创建tar文件命名备份从不运行_Linux_Cron_Tar - Fatal编程技术网

Linux 按当前日期创建tar文件命名备份从不运行

Linux 按当前日期创建tar文件命名备份从不运行,linux,cron,tar,Linux,Cron,Tar,我使用下面的命令为我的文件做每日备份 0 0 * * * tar czf /var/backups/file_$(date +%Y-%m-%d).tar.gz /home/files 我的cron日志显示 11月26日11:00:01 CROND[16646]:(root)CMD(tar czf/var/backups/file_$(date+) 而且我从来没有备份过我的文件,我在这里的命令中遗漏了什么字符%在crontab文件中有一个特殊的含义。它表示换行符。转义%字符,命令应该按预期工作

我使用下面的命令为我的文件做每日备份

0 0 * * * tar czf /var/backups/file_$(date +%Y-%m-%d).tar.gz  /home/files
我的cron日志显示

11月26日11:00:01 CROND[16646]:(root)CMD(tar czf/var/backups/file_$(date+)


而且我从来没有备份过我的文件,我在这里的命令中遗漏了什么

字符
%
在crontab文件中有一个特殊的含义。它表示换行符。转义
%
字符,命令应该按预期工作

因此,不是:

0 0 * * * tar czf /var/backups/file_$(date +%Y-%m-%d).tar.gz  /home/files
使用:

大多数现代的cron守护进程不会将
\
传递到shell。如果发生这种情况,您可能需要将备份命令放在单独的脚本中,然后从crontab调用它(这样cron守护进程就不会解释
%
字符)

因此,在
/usr/local/cronscipts/my backup script
中插入以下内容:

#!/bin/sh

tar czf /var/backups/file_$(date +%Y-%m-%d).tar.gz  /home/files
然后修改cronjob以调用该脚本:

0 0 * * * /usr/local/cronscripts/my-backup-script.
当然,这里的文件名和路径只是示例。请使用最适合您的文件名和路径,并记住至少为脚本提供正确的权限,即0700

0 0 * * * /usr/local/cronscripts/my-backup-script.