可能的重复:
当后缀队列为空时断开调制解调器
此脚本代码检查后缀邮件队列是否为空,如果为真,它将断开我的调制解调器。
#!/bin/sh
postqueue -p|grep empty
if [ $? -eq 0 ]; then
killall wvdial
fi
Run Code Online (Sandbox Code Playgroud)
我需要根据需要多次运行它,直到邮件队列变空。
我怎样才能循环它?
也许放置一个else返回以从postqueue -p|grep empty行开始执行脚本?
我知道它可以很简单,但我在 bash 脚本方面不是很擅长,所以我需要帮助来完成这段代码。
我一直在研究一个 PS 脚本,它会提示我输入几个条件,然后创建一个 Exchange/AD 帐户。一切顺利,但我在想,是否有一个命令可以创建一个类似于另一个用户的新用户?通常在我们的组织中,大多数用户的设置与他们部门中的其他用户非常相似。因此,如果 John Doe 从会计开始,基本上我会将他设置为类似于已经在会计中的 Jane Smith。他的头衔可能略有不同(会计师 I 与会计师 II),但其他项目如他所在的楼层、他在 AD 中的组等都是相同的。是否有一个 PS(或其他)命令会说“Add-User -like Jane”或者我可以说的东西,“创建新用户,保持 -description -location -ADGroups 与用户 Jane 相同”,
这可能有点牵强,但似乎一旦完成,我就可以更快、更有效地设置这个人。欢迎任何想法,谢谢!
我正在本地组策略中创建应用程序白名单,并且需要能够运行 cmd 脚本文件。简单地将cmd.exe、wscript.exe、 或cscript.exe加入白名单不会产生任何影响。我的脚本文件有.cmd扩展名。是否有处理.cmd脚本文件的不同应用程序?
我需要执行一个命令并检查它是否成功。如果出现错误,我应该再试一次,以下代码按预期工作。
但是如果我需要尝试相同的命令 3 或 4 次直到它成功执行怎么办?if / else 子句将变得非常复杂。
some command
if [ $? -eq 0 ];then
echo "success"
else
echo "failed first attempt trying again"
some command
if [ $? -eq 0 ];then
echo "success in second attempt"
else
echo "failed second attempt"
fi
fi
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来编写一个脚本,在退出前尝试该命令 4 次?
我有几个 TB 和数千个文件,我需要通过网络从一台 Linux 主机移动到另一台。我想获得有关如何编写脚本的建议,请记住以下几点:
xargs 和 Rsync 会很好,除非它似乎不提供在成功复制后“删除”源文件的能力。
这是关于在将机器加入域之前在机器上工作的问题,虽然我很想依赖 GPO,但目前这不是一个选项。
在我工作的环境中,防火墙策略是使用来自 Total Endpoint Solution 的第 3 方防火墙应用程序,因此我必须禁用默认的 Windows 防火墙顶部以防止冲突。我使用在想象过程结束时运行的脚本或在我没有重新成像的系统上手动执行此操作。有一段时间,我能够使用以下方法进行管理:
netsh advfirewall set allprofiles state off
Run Code Online (Sandbox Code Playgroud)
但是,由于某种原因,这停止了工作。所以,我发现我需要清除本地安全策略(手动):
Local Security Policy MSC > Windows Firewall with Advanced Security
Right-Click Windows Firewall with Advanced Security - Local Group Policy Object
Clear Policy
Run Code Online (Sandbox Code Playgroud)
这是我用来避免手动执行的脚本:
secedit /configure /db reset /cfg securityprofile
Run Code Online (Sandbox Code Playgroud)
这两个步骤的组合工作了大约一个月,然后,没有明显的原因,它停止工作。
我开始测试注册表黑客来实现我所需要的,它给了我混合的结果。我有两套带有我需要更改的配置文件的密钥;对于本地配置文件:
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsFirewall]
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsFirewall\DomainProfile]
"EnableFirewall"=dword:00000000
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsFirewall\PrivateProfile]
"EnableFirewall"=dword:00000000
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsFirewall\PublicProfile]
"EnableFirewall"=dword:00000000
Run Code Online (Sandbox Code Playgroud)
对于域配置文件:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SharedAccess\Parameters\FirewallPolicy]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SharedAccess\Parameters\FirewallPolicy\DomainProfile]
"EnableFirewall"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SharedAccess\Parameters\FirewallPolicy\PublicProfile]
"EnableFirewall"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SharedAccess\Parameters\FirewallPolicy\StandardProfile]
"EnableFirewall"=dword:00000000
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是本地配置文件在防火墙打开的情况下不断重新生成原始设置。我试过了:
用于测试的旧机器上的结果)很好
a) 应用本地策略注册表黑客
用于测试的旧机器上的结果)很好
a) 使用 …
scripting windows-7 vbscript windows-firewall windows-registry
这听起来可能有点奇怪,但我尝试使用命令行而不是编辑器在 Ubuntu 中永久设置 IP 地址。
我的想法是提供服务器并只输入一次 ip 地址,脚本会处理这个问题。
我只是无法想象那里没有任何东西可以写
ifconfig eth1 10.1.1.1 netmask 255.255.255.0 upRun Code Online (Sandbox Code Playgroud)进入/etc/network/interfaces文件。 我正在使用 Linux CentOS 6.4 。
我正在编写一个 shell 脚本,我需要提取机器的 IP 以便在脚本中使用它。如何找到机器的IP?
我正在寻找“最佳”方式,因为我知道有几种方法可以获取 IP 地址。
谢谢
我正在尝试使用 powershell 将员工列表导入 AD。该脚本需要更新现有的 AD 对象。
我遇到的问题是,有些用户会有手机号码,有些是内部号码,有些只是扩展名,当我以最基本的形式运行 Set-ADuser 命令时,只要值为空,它似乎就会失败。
我不擅长脚本,谁能向我解释为什么下面的脚本不起作用?如果是这样,有人可以建议如何使其工作吗?干杯
Import-module ActiveDirectory
$CSVPath = "c:\scripts\ictdepartment2.csv"
$csvData = Import-CSV $CSVPath -delimiter "," -Header ("SamaccountName","identity","Title","Company","Department","Description","Office","OfficePhone","IPPhone","MobilePhone")
##
foreach ($line in $csvData)
{
$accountTable = @{
'SamaccountName'= $line.SamaccountName
'identity'= $line.identity
'title'= $line.title
'company'= $line.company
'department'= $line.department
'description'= $line.description
'office'= $line.office
'officephone'= $line.officephone
'IPPhone'= $line.ipPhone
'mobilephone'= $line.mobilephone
}
}
##
ForEach($line in $csvData)
{
$SamaccountName = $line.SamaccountName
$identity = $line.identity
$title = $line.title
$company = $line.company
$department = $line.department
$description = $line.description
$office = $line.office …Run Code Online (Sandbox Code Playgroud) 我在这里有点困惑,并不确定如何调试它。我有一个自己编写的 bash 脚本,用于检查 samba 共享是否处于活动状态,如果没有,则向我发送电子邮件。
脚本在 /root/SKRIPTS/ 中,权限如下所示:
-rwxr-xr-x 1 root wheel 281 Nov 8 08:54 test_samba_shares.sh
-rwx------ 1 root wheel 39 Nov 7 13:56 smbclient.cred
Run Code Online (Sandbox Code Playgroud)
.sh 脚本的内容是这样的:
smbclient -L 10.0.0.1 -A /root/SKRIPTS/smbclient.cred | grep -q Backup
if [ $? -eq 0 ]
then
echo "Backup_* mounted, nothing to do"
else
echo "Subject: Samba has failed" | /usr/sbin/sendmail -v mail@localmail.server
fi
return 1;
Run Code Online (Sandbox Code Playgroud)
/etc/crontab 看起来像这样(仅限条目)
10 1 * * * root /root/SKRIPTS/test_samba_shares.sh
Run Code Online (Sandbox Code Playgroud)
问题是,如果我以 root 身份运行它,它就可以完美运行。但是每天晚上我都会收到一封电子邮件,说 samba 失败了,表明 cron 脚本以某种方式进入了 else …
scripting ×10
linux ×4
bash ×2
powershell ×2
cron ×1
group-policy ×1
interface ×1
ip ×1
networking ×1
queue ×1
shell ×1
ubuntu ×1
vbscript ×1
windows-7 ×1
windows-xp ×1