这可能在某处得到了答案,但我还没有找到。
我有一个简单的shell脚本,可以用来将日志文件移动到hadoop集群中。logrotate每天都会调用这个脚本。
它失败并出现以下错误:“/user/qradar:无法打开`/user/qradar'(没有这样的文件或目录)”。
# !/bin/bash
# use today's date and time
day=$(date +%Y-%m-%d)
# change to log directory
cd /var/log/qradar
# move and add time date to file name
mv qradar.log qradar$day.log
# load file into variable
# copy file from local to hdfs cluster
if [ -f qradar$day.log ]
then
file=qradar$day.log
hadoop dfs -put /var/log/qradar/&file /user/qradar
else
echo "failed to rename and move the file into the cluster" >> /var/log/messages
fi
目录/user/qradar确实存在,可以与hadoop文件命令一起列出。我还可以使用hadoop文件命令手动将文件移动到正确的目录中。我可以用这种方式将文件移动到集群中吗?有更好的办法吗?
欢迎有任何想法和意见。谢谢
1条答案
按热度按时间daolsyd01#
是
&file
输入错误hadoop dfs -put
线路?如果不是,那么这可能是您的问题,您正在运行命令
hadoop dfs -put /var/log/qradar/
在后台(与号在后台运行命令),然后file /user/qradar
,shell正在本地路径上查找。我猜你的意思是(美元而不是符号):