每当我同步我们的开发数据库时,我都会手动使主(也是唯一)节点离线,以避免一堆错误的测试失败。我有一个脚本可以执行完整的数据库导入,并且还想自动执行节点维护。
如何使用命令行界面 JAR 将主节点标记为暂时离线?
我可以使用该脚本进行身份验证。
$ jenkins who-am-i
Authenticated as: david
Authorities:
david
authenticated
Run Code Online (Sandbox Code Playgroud)但是,我无法获取offline-node或online-node识别主节点。帮助指出我可以省略“master”的节点名称,但这不起作用。
$ jenkins offline-node
Argument "NAME" is required
java -jar jenkins-cli.jar online-node NAME
Stop using a node for performing builds temporarily, until the next "online-node" command.
NAME : Slave name, or empty string for master
Run Code Online (Sandbox Code Playgroud)
好像是专门找一个slave,但是我需要让master的执行者下线。
$ jenkins offline-node master
No such slave "master" exists. Did you mean "null"?
Run Code Online (Sandbox Code Playgroud)在 OSX 10.8 上,如何通过从名称中删除一定数量的字符来重命名当前目录中的所有文件?例子:
my_img_1@2x.png to become my_img_1.png
Run Code Online (Sandbox Code Playgroud)
所以只有@2x部分会被删除。
我是节点新手,真的不知道事情会如何发展。
我有一个 Expect 脚本,它是 bash 脚本的包装器,而 bash 脚本是 scp 的包装器。:)
基本上,我会像这样调用我的 bash 脚本。
myscp host /path filenames
Run Code Online (Sandbox Code Playgroud)
这会要求我输入主机上的 root 密码。而且,我厌倦了一直输入 root。主机是带有 ramdisk 的测试机,因此我无法在主机上设置 ssh。所以我尝试了一下expect,我认为它可以完成这项工作。
无论如何,我可以在我的期望脚本中挑选出位置参数,如下所示:
#!/usr/bin/expect -f
set host [lindex $argv 0];
set path [lindex $argv 1];
#but how to get filenames??
[...]
spawn myscp $host $path $filenames
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经尝试设置文件名 [lrange $argv 2 end],但这只会导致一个参数包含所有带有空格分隔符的文件名。
不管怎样,我基本上想将“$@”传递给myscp。或者甚至不那么雄心勃勃,$@ 假设文件名中没有空格。
我会怎样做呢?
谢谢。
我正在尝试编写一个脚本,在运行脚本的其余部分之前检查计算机是否在我的 LAN 上。这是一个使用robocopy的简单备份脚本,但我希望它根据是否成功输出一个文件。这就是我所拥有的。
set machine=userbox
ping -n 1 %machine% > nul
if errorlevel 1 goto BAD
goto GOOD
:GOOD
robocopy source destination
echo "backup complete" > c:\scripts\backupgood-%machine%.log
shutdown /s /m \\%machine% /t 600
goto END
:BAD
echo "Computer not on" > c:\scripts\%machine%-offline.log
:END
Run Code Online (Sandbox Code Playgroud)
现在,脚本不会检测系统是否打开,而是假设系统已打开并继续执行脚本,就好像计算机能够被 ping 通一样。
有人可以指出为什么错误没有通过,或者也许有人有更好的方法来确定系统是否在线。
提前致谢。
在 MacOSX 上,我想从 CLI 关闭所有 VirtualBox 虚拟机,因为我已经从各种 Vagrant / Test Kitchen 进程中启动了很多虚拟机。
您好,我已经看到了几个这样的问题,但当我尝试遵循这些说明时,感觉我错过了一些东西
>
创建一个 .bat 文件来运行该程序,使用超时命令等待几秒钟让辅助进程运行,然后使用以下命令将辅助进程优先级更改为您想要的。
wmic process where name="进程名称" CALL setpriority "value"
可能的值:“空闲”、“低”、“低于正常”、“正常”、“高于正常”、>“高优先级”、“实时”
我制作了一个包含这些行的批处理文件:
start "C:\Program Files (x86)\Origin Games\STAR WARS Battlefront\starwarsbattlefront.exe"
timeout /t 60 /nobreak
wmic process where name="starwarsbattlefront.exe" CALL setpriority "above normal"
Run Code Online (Sandbox Code Playgroud)
当我运行这个时,我收到一个错误。我读过 StackoverFlow 和 SuperUser 上的很多关于这方面的文章,但没有一篇文章清楚地说明了最终产品。抱歉,我看起来很无知(因为我就是),我觉得我错过了一些明显的东西。谁能帮我解决这个问题吗?
提前致谢 :)
编辑 *
错误是:“C”不被识别为内部或外部命令、可操作程序或批处理文件。
我目前正在尝试将我的命令行参数与此连接:
for %%a in (%*) do set "subject=%subject% %%a"
Run Code Online (Sandbox Code Playgroud)
例如,如果我跑
my.bat subject line here
Run Code Online (Sandbox Code Playgroud)
它应该将我的主题变量设置为“此处的主题行”,保留空格。然而,当前运行后,我的主题变量设置为最后一个词。我得到的主题值为“这里”。
如何正确连接命令行参数?
我在网上找到了这个命令,查找并显示文件的硬链接,例如text.txt。
我的问题:这个命令中的感叹号(!)是做什么的?
find $PWD ! -type d -links +1 -ls | sort -n|cut -d" " -f29 | grep --color=auto "$2"
Run Code Online (Sandbox Code Playgroud)