问题:
因归档需要所以在shell脚本中cp命令与时间变量配合使用,具体配置如下:
#变量配置
hostname_exetime=""$(hostname)"_"$(date %Y-%m-%d_%H:%M:%S)""
#复制配置
cp *.tar.gz Analysislog/"$hostname_exetime".tar.gz && cp *.md5 Analysislog/"$hostname_exetime".md5
但是在执行脚本中发现命令无法执行,报错如下:
cp: cannot create regular file: Invalid argument
出现该问题后排查了很长时间,最后文件系统的问题也在排查,偶然发现了这个问题,是因为操作系统在处理“:”,他会这样显示,导致系统无法正常处理。具体可以看下图。
解决办法:
命令的时候避免使用特殊字符,建议使用的字符包括:字母、数字、"."(点)、"_"(下划线)和"-"(连字符)。
变量我们可以替换为:
hostname_exetime=""$(hostname)"_"$(date %Y-%m-%d_%H_%M_%S)""
或
hostname_exetime=""$(hostname)"_"$(date %Y-%m-%d_%H%M%S)""