所以我一直在远程服务器上运行本地脚本:
ssh user@server "`cat local-script.sh`"
Run Code Online (Sandbox Code Playgroud)
但是,今天我有一个包含单引号和双引号的脚本。这会导致脚本失败,因为 的输出cat local-script.sh用引号括起来。如果不修改脚本本身,有没有更好的方法来处理这个问题?
我认为这可能有效:
ssh user@server $(<local-script.sh)
Run Code Online (Sandbox Code Playgroud)
但似乎并没有做任何事情......
如果我有PID一个进程的编号(在 UNIX 机器上),我如何知道其关联进程的名称?我需要做什么?
重新启动后,我使用 init.d 脚本从挂载的网络共享 (autofs) 执行应用程序。该脚本在尝试执行命令之前等待 30 秒,以等待网络/挂载点启动。
在执行命令之前,我想以某种方式检测网络是否已确定并已确定安装。
您对如何使用此脚本实现此目标(在 CentOS 6.4 中)有何建议?
这就是我现在所拥有的:
#!/bin/bash
#
# chkconfig: 3 95 5
# description: My app
# processname: my-app
#
# Sleep for 30 seconds before attempting to execute command
sleep 30s
# Get function from functions library
. /etc/init.d/functions
# Start the service my-app from autofs mount
start() {
echo -n "Starting my-app: "
/share/path/my-app --log /tmp/log.log --supersede
### Create the lock file ###
touch /var/lock/subsys/my-app
success $"my-app startup"
echo
} …Run Code Online (Sandbox Code Playgroud) 我有两台相同的存储主机,其中主服务器是用户可以访问的唯一主机。如果 master 失败,那么我想手动更改 DHCP 地址,所以不是master指向10.10.10.10它,而是指向10.10.10.11.
有依赖IP地址的复制脚本,所以如果master改变了IP地址,那么我必须在脚本中修改IP,所以数据仍然从master复制到slave。
题
切换 IP 地址和编辑脚本是一项非常容易出错的任务。这种手动故障转移是如何完成的,有没有一种常见的做法?例如,通过添加某种抽象层?
要通过 ssh 拖尾文件,我可以使用
ssh -t remotebox "tail -f /var/log/remote.log"
Run Code Online (Sandbox Code Playgroud)
但是,可以将尾部与本地文件同步吗?那么一个文件自动镜像tail命令的更新呢?
linux 上的 df 列出了以下分区统计信息。
-bash-4.1# df 文件系统 1K-blocks Used 可用使用% Mounted on /dev/sda3 1918217320 1473337340 347440136 81% / tmpfs 32970328 0 32970328 0% /dev/shm /dev/sda1 482214 148534 308781 33% /boot /dev/sdd1 1922860884 1638599284 186585876 90% /disk5 /dev/sdc1 1922858352 1474925416 350257336 81% /disk2 /dev/sdb1 1922858352 1028783752 796399000 57% /disk4
如果我想获取分区名称的列表,例如:“/dev/sda3 /dev/sda1 /dev/sdc1...” 我该如何在 bash 中执行此操作?
很容易,我正在编写一个脚本,它需要一些浮点后有 2 位数字的值。尝试使用bc我不明白如何使用“比例”,即
A=12 ; bc <<< $(($A/5))
Run Code Online (Sandbox Code Playgroud)
这是正确的,但添加“比例”会导致错误:
A=12 ; bc <<< 'scale=2;$(($A/5))'
(standard_in) 1: illegal character: $
(standard_in) 1: illegal character: $
Run Code Online (Sandbox Code Playgroud) 在这篇博文中,他建议
echo '127.0.0.1 localhost EXAMPLE.my_domain localhost.localdomain EXAMPLE' >> /etc/hosts
Run Code Online (Sandbox Code Playgroud)
但以
但这是一种不太理想的方法,因为它可能有一些副作用。
在这个问题中,没有关于解决方案的明确答案。
题
为 sendmail 提供 FQDN 的推荐方法是什么?
> find /etc -name 'shells'
/etc/shells # good !!
> SEARCH="-name 'shells'"; find /etc $SEARCH
# nothing found - bad !!
Run Code Online (Sandbox Code Playgroud)
为什么“find”命令不能接受变量中的参数?
其他命令在这种模式下工作正常。它可能与空格和解析有关。我如何首先在变量中构造参数,然后使用此参数执行“查找”?
要清楚,我想制作 -name xxxx -o -name yyyyy -o -name zzzzz 的链,然后通过一次运行找到所有文件