我需要在远程Linux机器上执行一个bash脚本,作为sudo在Windows机器上运行的TeamCity。 我可以使用plink从cmd行执行脚本,但是系统提示input密码。 我需要能够做到这一点,而不需要提示input密码才能从teamcity执行。 我有什么select?
我运行unit testing脚本和testing用例设置我需要不时运行shell命令。 因此在unit testing执行期间shell命令运行了大约50次。 它在CentOS版本6.6(最终)服务器上正常工作,但在Ubuntu 14.04.3 LTS上不起作用。 问题是,大约20次的shell脚本执行后,我得到以下错误: exec(): Unable to fork [$(which mysql) -u user -ppwd test_db < "/opt/jenkins/workspace/some – project/application/../tests/Application/assets/sql/test_db.sql" 2> /dev/null] 我已经检查了互联网上的所有主题,没有人帮助我。 我已经增加了进程号码,并打开文件限制到巨大的价值 # ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 3885 max […]
我正在尝试编写一个bash脚本来login到一系列的服务器并执行一些命令,将要运行bash脚本的服务器没有安装EXPECT或SSHPASS,我无法安装它。 我正在寻找脚本的方式来自动login没有BASH或SSHPASS。 或者,脚本暂停在SSH需要运行脚本的用户密码的地方,然后手动input密码,然后脚本继续运行该设备上的命令。 这然后重复每个设备,我知道这不是很有效,但它不是一个真正的问题。 我在网上search了几个小时,但是一切似乎都与我可以安装的第三方工具有关。 谢谢。
我需要在运行dpkg-reconfigure exim4时自动回答所有的dialoge(蓝屏文本GUI)问题,因为我有一个bash脚本,可以在许多服务器上运行。 有没有办法自动input文字,按回车键,然后select是/否?
我有一个服务器集群将运行一个简单的ruok命令与失败转移。 该命令将会像curl -X POST http://foo.com/status一样简单。 由于我在这个池中会有3到300个节点,所以我想确保这个命令每10分钟才会发出一次。 我遇到了这个问题,我不能只是添加一个crontab到我的服务器,除非我希望他们都发出每X分钟。 我开始考虑使用HashiCorp Consul作为它相当高的可用性,看起来比etcd或Zookeeper更容易。 我不知道如何实际创造一些能做到这一点的东西。 我将在所有的服务器上使用这个脚本 #!/bin/bash curl -i -H "Accept: application/json" \ -H "Content-Type:application/json" \ -X POST –data '{"status":"ruok"}' "https://foobar.com/status" 那么,如何编写Consul以便在节点池中运行一次呢?
我试图在rhel7.2上用pcs创build一个lsb资源“sybase”脚本是关于Sybase数据库ASE服务器和备份服务器启动和停止并重新启动$ status脚本 之前 [root@pldbsv01 ~]# pcs status Cluster name: PLDBSV_CLUSTER Last updated: Tue Apr 19 23:18:44 2016 Last change: Tue Apr 19 22:59:07 2016 by root via cibadmin on pldbsv02-cr Stack: corosync Current DC: pldbsv02-cr (version 1.1.13-10.el7-44eb2dd) – partition with quorum 2 nodes and 9 resources configured Online: [ pldbsv01-cr pldbsv02-cr ] Full list of […]
发送端脚本如下: #!/bin/sh #Variables bigdata=vid-zfs-live/bigdata today=`gdate +%m-%d-%y` yesterday=`gdate -d'yesterday' +%m-%d-%y` #Actions zfs snapshot -r "$bigdata"@"$today" zfs send -i "$bigdata"@"$yesterday" "$bigdata"@"$today" | nc -w 700 192.168.10.11 8024 发送端的Cron条目如下: 30 0 * * * /scripts/zfssendBigData.sh > /tmp/cron1.log 接收端脚本如下: #!/bin/sh /usr/bin/nc -l -p 8024 | zfs receive -F vid-zfs-bak/bigdata 接收端的Cron条目如下: 29 0 * * * /scripts/zfsreceiveBigData.sh > /tmp/cron2.log cron1.log和cron2.log都是空的。 […]
我通过ssh通过查找从服务器抓取文件列表 for f in `ssh -p ${SSH_PORT} -l ${SSH_USER} ${SSH_HOST} -t "find ${DIR_REMOTE} -type f | grep jpg" 2> /dev/null` 当我在for循环( echo ${f} )主体中回显列表时,一切正常: /a3/obieg/skan001/skan001.jpg /a3/obieg/skan001/skan000.jpg /a3/obieg/skan001/skan003.jpg /a3/obieg/skan001/skan002.jpg /a3/obieg/skan.jpg ( scp -p -P ${SSH_PORT} ${SSH_USER}@${SSH_HOST}:"${f}" "${DIR_SUB}${2}_$(date +%Y%m%d_%H%M%S_%N.jpg)" ),结果是: : No such file or directory001.jpg : No such file or directory000.jpg : No such file or […]
所以我做了这样的事情: $ while true; do ssh sysremote -CN; done & disown % 在ps -ef只列出了ssh sysremote -CN 。 我如何杀死while循环?
所以,由于一些非常糟糕的deviseselect,我坚持在Debian机器上永远运行一个复杂的,不可替代的交互式控制台应用程序。 这个应用程序反复执行一些任务,然后返回stdout结果,如: InvetoryOpt: Finished PBridged: Finished FLoot: ERROR 我需要确保每x分钟我得到stringInvetoryOpt: Finished在程序的输出InvetoryOpt: Finished 。 如果没有,我需要杀死它,运行其他脚本,再次启动程序和检查。 我怎么能做到这一点? 我正在考虑expect但我没有太多的经验,我不知道我能够检查输出是否匹配每x分钟string。 笔记: 该程序还输出很多我不关心的垃圾, 该程序可以输出相同的stringInvetoryOpt: Finished在30分钟内InvetoryOpt: Finished多次或根本不输出任何东西。 所以拖尾文件将不会执行它,因为它将匹配该string的最后一个输出。 谢谢。