crontab 中用awk的strftime方法失效的问题

昆泽 2012-03-08 05:50:22
我的shell里面用了awk,类似这么一句
5 * * * * /bin/ls /opt/* | awk -F "_" '{print strftime("%Y%m%d00",systime()-2592000)}'
放在crontab里面,会找不到strftime这个方法,所以就不执行了。有什么解决办法么?
...全文
338 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jialejiahi 2012-03-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 mymtom 的回复:]

引用 1 楼 justkk 的回复:

/bin/ls /opt/* | awk -F "_" '{print strftime("%Y%m%d00",systime()-2592000)}'

手工执行,有什么输出?

strftime是gnu awk里才有的函数
[/Quote]
既然如此,楼主可以which whereis find啥的找找awk,然后看看awk是不是gnu的,如果有gnu的,用全路径试试。
lylm 2012-03-09
  • 打赏
  • 举报
回复
这个跟strftime函数没关系
昆泽 2012-03-09
  • 打赏
  • 举报
回复
@lylm 有关系的,可以肯定就是因为这个函数的原因,在crontab里面这条指令没有执行
@mymtom 手工输出是一串2012020800....

如果/bin/ls /opt/* | awk -F "_" '{print systime()}' > /opt/test 这样放在crontab里面是可以得到test文件的
但是如果加的strftime来格式化,就得不到test

怎么能在crontab里面用awk 的 strftime函数呢?
mymtom 2012-03-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 justkk 的回复:]

/bin/ls /opt/* | awk -F "_" '{print strftime("%Y%m%d00",systime()-2592000)}'

手工执行,有什么输出?
[/Quote]
strftime是gnu awk里才有的函数
justkk 2012-03-08
  • 打赏
  • 举报
回复
/bin/ls /opt/* | awk -F "_" '{print strftime("%Y%m%d00",systime()-2592000)}'

手工执行,有什么输出?

23,217

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧