我正在编写一个脚本来通过命令行查找所有防火墙详细信息、路由信息和重要的网络相关信息。我可以使用 获取防火墙配置iptables -nvL,但我不确定其余的。我应该使用什么命令来收集其他所有内容?
是否有使用 find 命令清除所有“.log”文件内容的简单步骤 。
目前我正在使用“echo -n > filename.log”我试过 echo -n > /var/application-logs/*.log 但它不起作用..
有没有更好的方法来清除多个文件的内容?
可能的重复:
在 shell 脚本中查找公共 IP 地址
为了在脚本中使用,能够做到这一点会很方便:
IP=`....something ....`
echo ...$IP... >> configfile
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我正在寻找网络上看到的 IP 地址。Ubuntu,如果它有所作为。很高兴安装一两个软件包。
这应该相当简单,但我不确定我错过了什么。
我想递归删除空目录,并获得正在删除内容的输出,此命令肯定有效,但我无法详细打印 -excec 的操作。
while [ -n "$(find . -depth -type d -empty -exec rm -v -rf {} +)" ]; do :; done
通过递归我的意思是,我想保持删除空文件夹,直到有没有其他的空文件夹。
$ tree .
.
??? empty
? ??? empty
? ??? empty
??? non-emty
??? ko
Run Code Online (Sandbox Code Playgroud)
此项只会删除树中的一个空文件夹
$ find . -depth -type d -empty -exec rmdir -v {} +
rmdir: removing directory, `./empty/empty'
Run Code Online (Sandbox Code Playgroud) 我有一台服务器(centOS),我想在上面安装主要的开发工具。Java、Tomcat 和 MySql。
编写可以在新生成的服务器上运行的脚本的好方法是什么,这样就不会在每个新服务器上手动完成。
bash 脚本最适合此目的吗?我希望脚本不仅与 centOS 相关联,而且能够跨不同风格的 linux 工作
我是网络主题的完全傻瓜。当特定的 iPhone/手机连接到无线网络时,我正在尝试创建日志。
主要目标是在已知的 mac 地址进入网络时触发触发器(创建日志文件、发送邮件、创建发布消息到 Web 服务器等)。
在终端上,如果我发送,arp -a我会得到电话的所有 ip 和 mac 地址,但我无法弄清楚如何使用 mac 地址进行此操作。
预期输入:开始=1,结束=500,间隔=100
预期输出:
1, 100
101, 200
201, 300
301, 400
401、500
@echo off
set start=1
set end=500
set interval=100
for /L %%g in (%start%, %interval%, %end%) do (
set first=%%g
set /a last=%first% -1 + %interval%
echo %first% , %last%
)
Run Code Online (Sandbox Code Playgroud)
实际输出:
401, 401 -1 + 100
401, 401 -1 + 100
401, 401 -1 + 100
401, 401 -1 + 100
401, 401 -1 + 100
不知道为什么 first 被分配了 401 值,感谢任何帮助
如何从 Ubuntu 的 cmd 以 root 权限运行 .sh 脚本?有些脚本需要输入密码。我想避免这种情况。
我似乎找不到从 Powershell 运行各种 Exchange 任务(建立电子邮件地址、删除 Exchange 属性、创建邮箱等)的方法。在我看来,Exchange 任务不可能自动化;有人有一个起点让我自动执行重复的 Exchange 任务吗?
PowerShell 将是首选语言,但如果没有办法只能通过 .NET 或类似的方式,我可以走那条路。
我有一个脚本,它在下面列出了 Active Directory 中所有主机的本地管理员:
$Searcher = New-Object DirectoryServices.DirectorySearcher([ADSI]"")
$Searcher.Filter = "(objectClass=computer)"
$Computers = ($Searcher.Findall())
md C:\All_Local_Admins
Foreach ($Computer in $Computers)
{
$Path=$Computer.Path
$Name=([ADSI]"$Path").Name
write-host $Name
$members =[ADSI]"WinNT://$Name/Administrators"
$members = @($members.psbase.Invoke("Members"))
$members | foreach {$_.GetType().InvokeMember("Name", 'GetProperty',
$null, $_, $null) | out-file -append C:\All_Local_Admins\$name.txt
}
}
Run Code Online (Sandbox Code Playgroud)
此脚本将主机名称输出为 txt 文件(HOST1.txt、HOST2.txt 等)
我想要的是获取一个文本文件,其名称获取当天的日期(例如:05082014.txt --> 该文件将包含所有主机的本地管理员)
我该如何管理?
非常感谢。
我想使用/etc/sudoers.d.
所以我做了以下事情:
visudo -f /etc/sudoers.d/99-php
Run Code Online (Sandbox Code Playgroud)
并输入此 sudo 规则:
www-data ALL = (root) NOPASSWD: /etc/my_script.sh
Run Code Online (Sandbox Code Playgroud)
在/etc/my_script.sh脚本中,我在/tmp再次删除它们之前创建了一个文件夹和几个文件。
去测试:
su www-data
/etc/my_script.sh
Run Code Online (Sandbox Code Playgroud)
这给了我很多这样的权限错误:
rm: cannot remove «/tmp/my_file.txt»: Access denied
Run Code Online (Sandbox Code Playgroud)
暗示我的脚本实际上根本没有以 root 身份运行。
那么我该怎么做才能让它发挥作用?
scripting ×11
bash ×3
linux ×3
powershell ×2
sudo ×2
.net ×1
batch-file ×1
exchange ×1
executable ×1
find ×1
firewall ×1
ip ×1
ip-address ×1
iphone ×1
iptables ×1
networking ×1
permissions ×1
php ×1
root ×1
tmp ×1
ubuntu ×1
windows ×1