问题:
因归档需要所以在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)""
参考文档:https://unix.stackexchange.com/questions/373284/cp-cannot-create-regular-file-invalid-argument