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 去对原文件打包,但是总是报一堆错,好像变量定义的时候有问题,怎么回事呢?
解决了。 展开
我在脚本里建了变量 TIME='date -d'1 day ago' "+%Y%m%d"' 然后用
tar -zcf ip-$TIME.tar.gz ip-$TIME.txt 去对原文件打包,但是总是报一堆错,好像变量定义的时候有问题,怎么回事呢?
解决了。 展开
2个回答
2016-04-09 · 知道合伙人互联网行家
关注
展开全部
你的变量定义格式有误,变量调用系统命令时的格式:
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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询