我们在远程服务器上有一个长时间运行的进程,它会不时手动启动。不幸的是,互联网连接中断、内核恐慌以及用于连接和启动作业的 ssh 会话可能会遇到一大堆其他挑战。
屏幕似乎是确保流程不被中断的完美方式。然而,依靠一个人总是记住启动屏幕然后运行脚本来启动进程是一个等待发生的问题。有没有办法从脚本中检查脚本是否是从屏幕内调用的?如果是,则该过程将继续,否则脚本将退出并显示一条消息,指示用户首先运行屏幕。
我们在远程服务器上有一个长时间运行的进程,它会不时手动启动。不幸的是,互联网连接中断、内核恐慌以及用于连接和启动作业的 ssh 会话可能会遇到一大堆其他挑战。
屏幕似乎是确保流程不被中断的完美方式。然而,依靠一个人总是记住启动屏幕然后运行脚本来启动进程是一个等待发生的问题。有没有办法从脚本中检查脚本是否是从屏幕内调用的?如果是,则该过程将继续,否则脚本将退出并显示一条消息,指示用户首先运行屏幕。
我想在我的 MySQL 服务器上有两个数据库:
但是,为了让每个人的脚本、查询浏览器设置和其他任何东西在我们从使用 DB 切换到另一个时都不会发生变化,我想让每个人都连接到 DEV_DB,然后使用 MySQL Proxy 之类的东西运行一个知道当前活动的数据库是 DEV_DB_A 并将查询路由到那里。如果我们将新版本的数据库恢复到 DEV_DB_B 或进行一些更改(例如,对表进行分区),我们可以通过更改一个 Lua 脚本轻松切换到 DEV_DB_B,而不是在各处更新引用。
我曾希望我可以在 mysql 数据目录中进行符号链接,但这不起作用,所以 MySQL Proxy 似乎是一种合理的方法。
作为 Lua 和 MySQL 代理的新手,我想知道是否有其他人以这种方式解决了这个问题以及它是如何工作的。
有没有办法自动附加到 $: ruby 中的变量以说明其他 site_ruby 位置?
Ruby 安装在 /usr/local/ 中,使用 gem_install 会将新的 ruby 文件正确安装到 /usr/local/lib/ruby/site_ruby。
但是,有一些 RPM 用于将 ruby 绑定到我们想要安装的 shadow 等工具,它们安装到 /usr/lib/ruby/site_ruby(非本地)。有没有一种标准的方法来告诉 ruby 这个目录也应该默认包含在内?
我知道脚本可以动态更新 $: 或者可以使用 -I 调用它们,但似乎这是应该在安装中处理的事情。
有没有其他人找到解决此类问题的干净方法?
谢谢,查克
我似乎遇到了在多种环境中使用 puppet 的两种方法:
1) 在每个环境中安装一个 puppetmaster,并且仅在准备好在该环境中部署配方时从该环境的源代码控制更新配方。
2) 使用一个 puppetmaster 并在每个客户端的 puppet.conf 中使用一个变量来指定环境,然后在 puppetmaster 中为每个环境指定一个不同的模块路径,并且每个路径都更新到用于该环境的配方存储库的分支环境(例如开发、登台、生产)。
只运行一个 puppetmaster 似乎少了一个基础设施来保持运行,但配置中存在一些额外的复杂性。
这些方法之一或我完全缺少的东西是否有其他优点或缺点?
我们有一个 Java 进程,其中包含一个我想在 RHEL5 机器上运行的嵌入式 FTP 服务器。我不想以 root 身份运行该进程,也不希望客户端在建立连接时必须指定端口。似乎我应该能够将 vsftpd 配置为侦听备用端口(例如 20000),然后配置 ipchains 将端口 21 上的所有流量转发到 20000。我认为我特别需要:
ip_conntrack_ftp
将流量从端口 21 转发到 20000所以我最初的问题是这看起来是一种合理的方法吗?
为了完成第 1 步,我修改了我的 vsftpd.conf 以具有以下行:
listen_port=20000
然后我可以重新启动 vsftpd 并通过执行以下操作来验证它是否正在侦听 20000:
> ftp tstweb1 20000
Connected to tstweb1.pulseenergy.com.
220 (vsFTPd 2.0.5)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (tstweb1:cclark):
我继续登录没有问题。步骤 1 完成。
至于第 2 步,我没有看到加载的模块:
> /sbin/lsmod | grep ftp
>
所以我尝试用正确的端口转发信息加载它:
> /sbin/modprobe ip_conntrack_ftp ports=21,20000
我验证它已经加载:
> /sbin/lsmod | grep ftp
ip_conntrack_ftp 41489 0
ip_conntrack 91109 3 ip_conntrack_ftp,iptable_nat,ip_nat
但是当我尝试使用它时,连接被拒绝:
> ftp tstweb1
ftp: connect: Connection refused
我知道 FTP 是一个复杂的协议,具有主动和被动模式以及多个端口上的通信,但我的印象是该ip_conntrack_ftp
模块会为我隐藏很多内容。我还需要编写一些特定的 iptables 规则吗?