linux脚本时间变量调用 20

一个linux6.3的日志服务器,每天都会从别的设备接收日志,格式为:ip-20160322.txt(日期是举例)。现在我想每天凌晨做一个crontab去tar昨天收集完... 一个linux 6.3的日志服务器,每天都会从别的设备接收日志,格式为:ip-20160322.txt(日期是举例)。现在我想每天凌晨做一个crontab去tar昨天收集完成的日志,命名格式为:ip-20160322.tar.gz(日期是举例) 。然后现在我用 date -d'1 day ago' "+%Y%m%d" 去获取前一天的时间,怎么在脚本里用tar命令直接去调用这个获取前一天日期的命令去直接找到前一天的源文件,然后同样用同一天的日期去命名新打包的文件呢?忘高手赐教。
我在脚本里建了变量 TIME='date -d'1 day ago' "+%Y%m%d"' 然后用
tar -zcf ip-$TIME.tar.gz ip-$TIME.txt 去对原文件打包,但是总是报一堆错,好像变量定义的时候有问题,怎么回事呢?

解决了。
展开
 我来答
Archer
2016-04-09 · 知道合伙人互联网行家
Archer
知道合伙人互联网行家
采纳数:149 获赞数:281
擅长Linux Server、Big Data Ops。

向TA提问 私信TA
展开全部

你的变量定义格式有误,变量调用系统命令时的格式:

TIME=$(date -d'1 day ago' "+%Y%m%d")

TIME=`date -d'1 day ago' "+%Y%m%d"`
#推荐使用第一种方式,看起来比较直观也容易避免一些问题

 完整的脚本如下:

在/root/目录下创建名为 tar_log.sh的sh文件

#!/bin/bash
TIME=$(date -d'1 day ago' "+%Y%m%d")
logdir="#日志存放位置"
cd $logdir/
tar -zcf ip-${TIME}.tar.gz ip-${TIME}.txt

crontab 设置如下:

00 00 * * * /bin/bash /root/tar_log.sh
tenggge
2016-03-30
知道答主
回答量:8
采纳率:0%
帮助的人:2.9万
展开全部
riqi=`date '+%Y%m'`
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式