我有一个日志系统,它将日志文件写入子目录,如下所示:
/var/log/xyz/2015/03/10/log.log
在我的家庭目录(或其他地方),我想要一个softlink到最新的日志文件somhow像这样。
ln -s /var/log/xyz/CURRENT_YEAR/CURRENT_MONTH/CURRENT_DAY/log.log ~/log.log
是否有可能获得dynamic链接?
我不知道有什么方法可以直接查找dynamic符号链接,但是另一种方法是在.bashrc文件中设置一个环境variables或别名(假设您使用的是bash)。
export currentlog=$(date '+/var/log/xyz/%Y/%m/%d/log.log')
然后使用环境variables,只要说$ currentlog而不是〜/ log.log。
例如(把文件放在我的主目录而不是/ var / log):
# export currentlog=$(date '+/home/userid/%Y/%m/%d/log.log') # echo "TEST LOG INFO" > /home/userid/2015/03/11/log.log # cat $currentlog TEST LOG INFO # ls -l $currentlog -rw-rw-r--. 1 userid userid 0 Mar 11 13:16 /home/userid/2015/03/11/log.log # grep TEST $currentlog TEST LOG INFO
是的,你应该可以很容易地在cron作业中使用命令replace,使用以下命令编辑你的用户cron:
crontab -e
然后添加以下条目,分别在上午9点和9点01分运行。
0 9 * * * rm ~/log.log 1 9 * * * ln -s /var/log/xyz/$(date +%Y)/$(date +%m)/$(date +%d)/log.log ~/log.log
或者,也可以同时按顺序运行它们:
0 9 * * * rm ~/log.log; ln -s /var/log/xyz/$(date +%Y)/$(date +%m)/$(date +%d)/log.log ~/log.log
这将产生一个符号链接,如:
/var/log/xyz/2015/03/11/log.log => ~/log.log
如果格式与上面的格式不同(例如,使用“March”而不是“03”),请参阅本指南以了解如何更改格式:
http://www.cyberciti.biz/faq/linux-unix-formatting-dates-for-display/
希望有所帮助!