source some_file
Run Code Online (Sandbox Code Playgroud)
some_file:
doit ()
{
echo doit $1
}
export TEST=true
Run Code Online (Sandbox Code Playgroud)
如果我获取 some_file函数“ doit ”和变量 TEST 在命令行上可用。但是运行这个脚本:
脚本.sh:
#/bin/sh
echo $TEST
doit test2
Run Code Online (Sandbox Code Playgroud)
将返回 TEST 的值,但会产生关于未知函数“doit”的错误。
我也可以“导出”该函数,还是必须在 script.sh 中获取 some_file 才能在那里使用该函数?
我正在尝试编写一个使用 ssh 连接进行“心跳”的 shell 脚本。我想在某个超时后(连接断开后)终止该连接的客户端和服务器端。
到目前为止我发现了什么:
要更改“ClientAliveCountMax”,我必须修改每台目标计算机上的 sshd_config(默认情况下禁用此选项)。
所以我的问题是 - 我是否也可以将“TCPKeepAlive”用于我的目的(无需更改源/目标机器上的任何其他内容)?
目标操作系统是 SLES11 SP2 - 但我认为这与此处无关。
作为系统管理员,我有时会遇到这样的情况,即程序运行异常,而根本不会产生错误或产生无意义的错误消息。
过去 - 在 java 出现之前 - 有两种对策:
我通常strace -f在 Linux 上用于此任务(其他操作系统具有类似的跟踪工具)。现在,虽然这通常适用于任何老式程序,但在java进程上执行相同操作时,跟踪会变得非常模糊。有太多看起来与任何实际操作无关的系统调用,在这样的转储中搜索是很糟糕的。
有没有更好的方法来做到这一点(如果源代码不可用)?
现在带宽不是我的主要关注点——延迟才是。
如果我在我的应用程序服务器和它的数据库服务器之间放置几百公里会发生什么?
我正在寻找一种可能性来模拟每个 IP 数据包的预期延迟。
有一个类似的问题- 但恕我直言,必须有一个更简单的解决方案。如果 BIOS 中的 num-lock 处于打开状态 - 为什么它在 linux 启动和/或 KDE/Gnome/任何启动期间关闭?
我总觉得bc有些神秘和耐人寻味。这是一个在原来的Unix程序。它本身就是一种编程语言。所以我很乐意抓住任何我能找到的机会来使用它。
由于 bc 似乎不包括阶乘函数,我想定义一个这样的:
define fact(x) {
if (x>1) {
return (x * fact(x-1))
}
return (1)
}
Run Code Online (Sandbox Code Playgroud)
但是......我不能重复使用它,是吗?
我希望能够做类似的事情
me@home$ bc <<< "1/fact(937)"
Run Code Online (Sandbox Code Playgroud) RedHat 和 CentOS 是二进制兼容的。因此,在一个上运行的所有内容很可能在另一个上运行(相同的 RPM、相同的库、相同的版本、相同的依赖项)......
将 Ubuntu LTS 与 Debian 进行比较时是否也是如此?在尝试为 Ubuntu LTS 构建镜像时,我注意到这些软件包来自 Debian 存储库...
是否一切都与 RH/CO 的工作方式相同,或者这是昼夜差异(如 OpenSuSE 与 SLES 相比)?
我有一台(非生产)机器,外部支持者可以在其中访问 shell(非 root)。我想阻止他们使用 iptables 从那台机器进一步进入我们的网络。
“正常”防火墙 GUI 仅阻止传入流量。如何设置诸如“接受所有传入流量(加上响应),但仅允许特定目标的新传出流量(例如到监控服务器的 snmp-traps)”之类的规则?
操作系统是 CentOS 5
我只是在查看 XEN VM 服务器的磁盘 IO。我偶然发现了一个具有持续写入流量的 DomU。
为了进一步缩小流量,我登录到 DomU(CentOS 5,64 位)并启动iostat 5. 它显示 sda1 处于活动状态,每秒写入 130-190 个块。
磁盘布局:
sda: Whole disk (corresponds to DRBD-device in the Dom0, consist of one LV in the Dom0)
sda1: /
sda2: /var
sda3: LVM-PV for application data, contains one LV mounted as subdirectory on /var
Run Code Online (Sandbox Code Playgroud)
我试图通过发出lsof /dev/sda1. 该命令的输出为空。而 for 的输出lsof /dev/sda2显示了大量文件、管道……(正如预期的那样)。
如何追踪导致此 IO 的原因?