我有一个脚本查询基于用户input的远程服务器,并查找文件的最后修改date。 它的工作,但是,在文件中包含一个string,我需要显示以及我所尝试的一切都是徒劳无功。 我真的很感激任何帮助。
脚本
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
结束这样做,效果很好。
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
很简单:
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
。