我有很多计算机,我在它们之间进行 ssh。
我有一个 cron 文件,我手动将其输入到每台计算机中。当我更改此 cron 文件时,我必须手动 ssh 到每台计算机以相应地更新其 cron。
有没有办法让每台电脑的cron,成为这个文件的一个功能?
这样我就可以只有一个文件,它可以在计算机之间同步,从而更新每台计算机中的 cron。
我有很多计算机,我在它们之间进行 ssh。
我有一个 cron 文件,我手动将其输入到每台计算机中。当我更改此 cron 文件时,我必须手动 ssh 到每台计算机以相应地更新其 cron。
有没有办法让每台电脑的cron,成为这个文件的一个功能?
这样我就可以只有一个文件,它可以在计算机之间同步,从而更新每台计算机中的 cron。
我有很多台计算机,每台计算机都在左右启动 cron 作业。
这些都是服务器计算机和台式计算机。
在台式计算机上,如果用户在 cron 作业运行时关闭计算机会很不方便。
我正在考虑 mv-ing shutdown 命令,并让用户通过专用功能关闭,该功能又会运行 shutdown 命令,但只有在所有 cron 作业停止运行后才会运行。
我是不是想错了?
或者 shutdown 命令是否已经考虑了 cron 作业?
我正在编写~/.bashrc文件。
我想将 Alt-c 绑定到 Ctrl-u。
所以当我按 Alt-c 时。Ctrl-u 的功能应该会发生。
Ctrl-u 清除终端上的文本。所以 Alt-c 现在应该这样做。
我有以下文字:
# Avoids default mapping.
# set bind-tty-special-chars off
# Solves error: 'bind editing not enabled.'
# But prevented me from using Control-p/n.
set -o vi;
# Up Directory (Alt-j)
bind '"\ej": "cd ..;\r"';
这成功地将 alt-j 绑定到代码“cd ..;”
但我不知道如何将 alt 映射到 Ctrl 映射。
它可能与“ set -o vi ”有关。但我无法在不出现绑定错误的情况下删除它。另外,取消设置“ set -o vi ”会导致副作用,使我无法再在终端中按选项卡。他们还说这只是 emacs 和 vi 之间的一个选择,所以我认为对于我的未来来说,如果我能简单地设置 -o vi 就最好了,因为我完全在 Vim 中。
我也尝试过在 set -o vi 之前使用以下内容,但它不起作用。
# Clear Text (Alt-c)
bind '"\ec": "Control-u:"';
但无论如何。
如何将 Alt-c 映射到 Ctrl-u?
我可以
tail -vf -c5 thefile \
| cat -n \
| sed -E 's/a/b/g' \
;
但以下内容没有输出。
tail -vf -c5 thefile \
| cat -n \
| sed -E 's/a/b/g' \
| sed -E 's/f/F/g' \
;
为什么?
我正在修改 tail -f 之后的文本。
我有以下程序来监视文件:
tail -vf -c5 /tmp/index \
| cat -n \
| sed s/^[^0-9]*\\\([0-9]\\\)/__\\\1__/g - \
;
sed 成功更改了 tail 的输出。
从另一个终端我现在可以这样做:
RED='\033[0;31m';
NC='\033[0m';
printf "I ${RED}love${NC} Stack Overflow\n" 1>>/tmp/index;
尾部监控程序将以彩色显示更新。
但我想要的是 sed 程序,它可以自行向输出添加颜色。我尝试了很多不同的设置,但都没有效果。主要涉及到处添加反斜杠。
我如何拥有 tail-sed 程序,为输出添加颜色?
众所周知,我们可以使用以下命令将错误重定向到特定文件:
./some_script 2>error_log
我正在运行多个脚本,并希望他们将错误放入单个错误文件中。
有没有办法在每个错误实例前面附加信息,例如脚本名称?这样,错误日志可以记录,例如,发布错误的脚本名称等。
我使用以下内容制作 bash 脚本 temp.sh:
age=0;
((age++));
当我以普通用户身份运行它时,它运行良好。
但是当我以root身份运行它时,我得到了错误:
./temp.sh:4:./temp.sh:age++:未找到
这是为什么?
执行一个命令,即一个变量的内容。
我正在尝试创建一个 bash 重命名程序,它可以重命名给定目录中的所有文件。我有以下程序:
for PATHFILE in tracks/*
do
path="$(dirname "$PATHFILE")"
file="$(basename "$PATHFILE")"
program='mv';
if [[ "$file" =~ ([0-9]*)\s*(.*) ]]
then
from=${path}/${file}
to=${path}/${BASH_REMATCH[1]};
command_string="$program '$from' '$to'";
#here the command_string contains the command i want to execute.
$(command_string);
#causes error:
# mv: target ''\''tracks/01'\''' is not a directory.
break;
fi
done
如果我自己直接运行命令,那么它运行没有问题。我也不太明白为什么系统要在字符串周围添加这些逗号。
如果我将变量回显到屏幕上,那么我就可以复制它,运行它并且它运行时没有错误。但是如果我尝试在代码中运行它,那么我会不断收到此错误。
我如何让它工作?