У меня есть сценарий, запрашивающий удаленный сервер на основе ввода данных пользователем и ищущий дату последнего изменения файла. Это работает, однако, содержащаяся в файле строка, которую мне также нужно отобразить, и все, что я пробовал, было напрасно. Буду очень признателен за любую помощь.
Сценарий
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
Очень просто:
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
.
Закончил этим, отлично поработал.
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