我希望输出 Kubernetes 中所有用户帐户的逗号分隔列表。
据我了解,可以使用“kubectl get namespace”和“kubectl get pods”命令从 Kubernetes 返回命名空间、pod 等的列表。但是,是否有等效的方法可以返回 Kubernetes 用户列表?
目前,我可以通过我们的管理平台 Rancher 从 Kubernetes 中查看所有用户帐户及其各自的姓名、电子邮件和 ID 的列表,但问题是,我似乎找不到返回逗号的方法 -通过 Kubectl 或 Powershell 通过命令行分隔这些用户的列表。
我想使用 kubectl 命令获取 Kubernetes 集群中所有命名空间的名称列表。
目前,我正在运行下面的 kubectl 命令,它为我提供了所有命名空间的列表。
但是,我不想看到“ACTIVE”和“AGE”列。我只想要 NAME 列。
其背后的原因是,我可以将 NAME 列中的所有项目添加到数组中以进行进一步处理。
> kubectl get namespaces
NAME STATUS AGE
dread-gorge Active 284d
dread-lagoon Active 210d
carncier-basin Active 164d
chantague-shallows Active 164d
hilraine-loch Active 311d
stangrave-waters Active 271d
Run Code Online (Sandbox Code Playgroud) 下面的代码导出在文件服务器的目录上设置的所有权限.由于我的代码正在搜索的文件服务器上有超过1,000个权限,我使用StreamWriter来加速将这些权限导出/写入CSV.下面的代码相应地运行并获得所有权限,但问题是结果没有按照预期使用StreamWriter写入CSV.知道为什么会这样吗?
$current_date = Get-Date -UFormat "%Y%m%d"
$directory_to_search = dir -Path "C:\Temp\test_folder\*\*\*" -Force |
where {$_.Attributes -match'Directory'}
$file_to_stream_results = New-Object System.IO.StreamWriter "C:\Temp\test_folder\server_permissions_$current_date.csv"
$count_of_directories = $directory_to_search.length.ToString()
$Report = @()
for ($i=0; $i -lt $directory_to_search.Length; $i++) {
$acl = Get-Acl -Path $directory_to_search[$i].FullName
for ($j=0; $j -lt $acl.Access.Count; $j++) {
if (!($acl.Access[$j].IdentityReference -eq "BUILTIN\Administrators") -and !($acl.Access[$j].IdentityReference -eq "NT AUTHORITY\SYSTEM")) {
$Report += New-Object PsObject -Property @{
'FolderName' = $directory_to_search[$i].FullName
'AD Group or User' = $acl.Access[$j].IdentityReference
'Permissions' = $acl.Access[$j].FileSystemRights
}
}
}
}
$Report | …Run Code Online (Sandbox Code Playgroud) 我创建了一个 PowerShell 脚本,该脚本使用 StreamWriter 将 Windows 中文件夹的权限结果写入 CSV 文件。目前,该脚本为每个文件夹创建一个新文件。我的问题是,StreamWriter 是否可以附加到文件而不是每次都创建或覆盖。谢谢,
$file_stream_output = New-Object IO.StreamWriter "$path_to_file\results.csv"
$file_stream_output.WriteLine('FolderName,AD Group or User,Permission')
foreach ($directory in $directories_to_search_depth_2[$k])
{
$acl = Get-Acl -Path $directory.FullName
foreach ($access_right in $acl.Access)
{
if ( ($access_right.FileSystemRights -notmatch $exclude_filesystem_rightss_regex) )
{
$file_stream_output.WriteLine(('{0}, {1}, {2}' -f $directory.FullName, $access_right.IdentityReference, $access_right.FileSystemRights))
}
}
}
$file_stream_output.Close()
Run Code Online (Sandbox Code Playgroud)
我的目标是将结果附加到文件中。
如何读取多个文件的第二行,然后将结果输出到TXT文件?
到目前为止,我可以使用以下命令读取一个文件的第二行:
cat file-1.txt | awk 'NR == 2'
Run Code Online (Sandbox Code Playgroud)
但是,它正在读取数百个文件的第二行并将结果写入 TXT 文件,但我陷入了困境。
cat file-1.txt | awk 'NR == 2'
cat file-2.txt | awk 'NR == 2'
...
cat file-199.txt | awk 'NR == 2'
cat file-200.txt | awk 'NR == 2'
Run Code Online (Sandbox Code Playgroud)