我需要扩充我的输出以包括此 Bash 脚本中的 cat-ing 文件

我需要扩充我的输出以包括此 Bash 脚本中的 cat-ing 文件

我有一个脚本,它根据用户输入查询远程服务器并查找文件的最后修改日期。它可以工作,但是文件中包含一个字符串,我也需要显示该字符串,而我尝试的所有方法都无济于事。我非常感谢任何帮助。

脚本

echo "Input server name:"
read server
echo "Input user:"
read user

ssh $server "find /home/  -maxdepth 2 -name .lastlogin | xargs -l -I{} bash -c '{
stat -c \"User: %U Last Login : %y\" {} | cut -c -47 |grep $user; 
}'"

当前样本输出

User: owner Last Login : 2014-07-24 15:05:39

我需要这个输出包含这个文件的内容,.lastlogin它恰好是一个 IP 地址。

所需样本输出

User: owner Last Login : 2014-07-24 15:05:39 From: 172.0.0.1

答案1

最终完成了这件事,效果非常好。

echo "Server name:"
read server
echo "Search for user:"
read user

OUTPUT1=$(ssh $server "find /home/$user/.lastlogin | xargs -l -I{} bash -c '{
stat -c \"User: %U Last Login : %y\" {} | cut -c -47;
}'")

OUTPUT2=$(ssh $server "cat /home/$user/.lastlogin")

echo "$OUTPUT1 From: $OUTPUT2"
exit

输出:

User: owner Last Login : 2014-07-24 15:05:39 From: 172.0.0.1

答案2

很简单的:

ssh $server "readlink -f /home/$user/.lastlogin | \
    xargs -l -I{} bash -c '{
      stat -c \"User: %U Last Login : %y\" {} | cut -c -47 | grep $user;
      echo -n \"From: \" ; cat {} ; echo ; 
    }'"

我会用readlink -f而不是find

相关内容