我有shell脚本,目前每5分钟运行一次(我在crontab中配置)并将所有输出发送到同一个文件中。
当前脚本
#!/bin/sh
ipath=/usr/local/nextone/bin
ifile=/var/tmp/EndpointUsage.csv
"$ipath"/cli iedge list | awk '
BEGIN { print "------------------------------------";
printf "|%-17s|%-16s|\n","Registration ID", "Ongoing Calls"
}
/Registration ID/ { id = $3; next }
/Ongoing Calls/ {print "------------------------------------"; printf "|%-17s|%-16s|\n",id,$3 }
END{
print "------------------------------------";
}'>> "$ifile"
当前输出如下所示。
EndpointUsage.csv I want something like below. EndpointUsage_09:55-Am_09_05_2015.csv EndpointUsage_10.00-Am_09_05_2015.csv EndpointUsage_10:05-Am_09_05_2015.csv
任何人都可以帮助我。提前谢谢。
答案 0 :(得分:1)
我编辑了您的脚本以满足您的需求,请参阅下文:
#!/bin/sh
ipath=/usr/local/nextone/bin
date=$(date +"%Y%m%d%H%M")
ifile=EndpointUsage$date.csv
"$ipath"/cli iedge list | awk '
BEGIN { print "------------------------------------";
printf "|%-17s|%-16s|\n","Registration ID", "Ongoing Calls"
}
/Registration ID/ { id = $3; next }
/Ongoing Calls/ {print "------------------------------------"; printf "|%-17s|%-16s|\n",id,$3 }
END{
print "------------------------------------";
}'>> "$ifile"
我做的补充是
date=$(date +"%Y%m%d%H%M")
ifile=EndpointUsage$date.csv
Format the timestamp根据您的需要。
答案 1 :(得分:1)
您可以将ifile =行更改为类似的内容(使用' date'格式化您要将输出写入的路径/文件)
ifile="$(date '+/var/tmp/EndpointUsage_%I:%M-%p_%d_%m_%Y.csv')"
日期的人(或信息)页面包含您可以使用的所有占位符的列表。 http://linux.die.net/man/1/date