我创建了一个名为monitornsuaccounts.sh的脚本,该脚本应将其输出文件附加到useraccountstatus.log。 useraccountstatus.log位于目录/ var / local / nsu / logs /.
中此脚本的输出应说明每个用户名以及有关每个用户名的以下信息:用户名,上次登录,用户主目录和关联的组。最好每个信息都应有列。
我用于用户名的命令是sudo cat / etc / passwd | grep'/ home'。最后是找到每个用户的最后一次登录。组是查找每个用户的组。当我运行该命令时,输出文件仅显示我当前用户而不是所有用户所需的数据。任何人的任何建议将不胜感激。
#!/bin/bash
usernames=sudo cat /etc/passwd | grep ‘/home’
echo “$usernames” > /home/daniel/names.txt
mlast=$(cat names.txt | xargs -n1 last)
mgroup=$(cat names.txt | xargs -n1 groups)
cat names.txt > /var/local/nsu/logs/useraccountstatus.log
echo “$mlast” >>/var/local/nsu/logs/useraccountstatus.log
echo “$mgroup” >>/var/local/nsu/logs/useraccountstatus.log
答案 0 :(得分:0)
您的脚本中存在很多问题。
您对用户的定义。你确定这是你想要的吗?例如:root在/ home下没有目录。
留意你的报价。 public static class Context
{
private static IHttpContextAccessor HttpContextAccessor;
public static void Configure(IHttpContextAccessor httpContextAccessor)
{
HttpContextAccessor = httpContextAccessor;
}
private static Uri GetAbsoluteUri()
{
var request = HttpContextAccessor.HttpContext.Request;
UriBuilder uriBuilder = new UriBuilder();
uriBuilder.Scheme = request.Scheme;
uriBuilder.Host = request.Host.Host;
uriBuilder.Path = request.Path.ToString();
uriBuilder.Query = request.QueryString.ToString();
return uriBuilder.Uri;
}
// Similar methods for Url/AbsolutePath which internally call GetAbsoluteUri
public static string GetAbsoluteUrl() { }
public static string GetAbsolutePath() { }
}
不返回任何内容,而cat /etc/passwd | grep ‘/home’
返回/ etc / passwd中的节列表
您可能只想要一个用户名列表,而不是一个节列表。
的一些方面cat /etc/passwd | grep 'home'
cat /etc/passwd | grep 'home' | sed 's/:.*//'
为什么sudo
?
在
中查看您的作业sudo cat /etc/passwd
这没有意义。你可能会尝试做一个
usernames=sudo cat /etc/passwd | grep ‘/home’
这只是剧本的第一行。
无论如何,如果你的脚本没有按预期工作,你需要做一些调试。第一个问题,特别是如果你没有经验,是“我写的命令能给出我期望的结果吗?”所以在你的情况下,你应该尝试usernames=`sudo cat /etc/passwd | grep '/home'| sed 's/:.*//'`
,你会发现它没有给你预期的结果。即使使用正确的引号,您也会得到一个节列表,这也不是您所期望的。您是否看过cat /etc/passwd | grep ‘/home’
并且该文件的内容是您想要的?我猜不是:它是空的。
只是一个快速的提示,让你开始朝着正确的方向前进(尽管仍有一些问题,人们可能会反对这种背景)
/home/daniel/names.txt
您需要对此进行润色并使输出更有用。