我已经改变/etc/cron.d/filename
并在那里添加了一项新工作。
* * * * * /bin/bash /root/scripts/scriptname.sh
但这个作业没有执行。重新启动 Cron 也没有用。
我已经改变/etc/cron.d/filename
并在那里添加了一项新工作。
* * * * * /bin/bash /root/scripts/scriptname.sh
但这个作业没有执行。重新启动 Cron 也没有用。
我有带有特定进程的 Docker 容器,但它们都是以 开始的runsvdir
。
/usr/bin/containerd-shim-runc-v2 -namespace moby -id ...
\_ /bin/bash /assets/wrapper
\_ runsvdir -P /opt/...
我想在 Nginx 配置文件中 grep 一个 IP 地址。我想使用命令输入 IP 地址read
,但不想将输入存储在附加变量中。所以我想要这样的东西:
grep -ir $(read) /etc/nginx/
使用read
内部论证的正确方法是什么?
我想获取 PostgreSQL 数据库的列表。PostgreSQL 由postgres
用户运行,所以我需要使用runuser
.
当我执行时
runuser -l postgres -c 'psql -tc "SELECT datname FROM pg_database WHERE datname <> ALL ('{template0,template1,postgres}');"'
我明白了
ERROR: column "template0" does not exist
LINE 1: ...CT datname FROM pg_database WHERE datname <> ALL (template0)...
因此,如果我在登录时执行 runuser 命令,postgres
它就su
可以工作。
我有我所获得的域名的逐行列表
for domain in $(nginx -qT | grep -E "^[[:space:]]*server_name" | grep -Ev "^[[:space:]]*#" | sed 's/^[ \t]*//' | sed 's/server_name //g' | tr -d \; | grep -Ev "^_$" | sort | uniq); do echo $domain; done
来自 Nginx 配置。
清晰可见:
for domain in $(
nginx -qT |
grep -E "^[[:space:]]*server_name" |
grep -Ev "^[[:space:]]*#" |
sed 's/^[ \t]*//' |
sed 's/server_name //g' |
tr -d \; |
grep -Ev "^_$" |
sort |
uniq
); do
echo $domain;
done
我的目录中还有几个配置文件,/etc/nginx/conf.d/
名称为domain.conf
.
我只想从第二个列表中的配置文件描述的第一个列表中提取域。
我可以做什么来合并这两个列表并从最终列表中提取唯一域,仅保留两个列表包含的域?
我列出的第二个清单
for directory in $(grep -ir "include" /etc/nginx/nginx.conf | grep -Ev "^[[:space:]]*#" | grep -v "fastcgi_params\|mime.types" | sed 's/;//g' | grep -o "/.*"); do ls $directory; done
我想在 Bash 脚本中使用这些东西,以便列表保留为变量值而不是文件。我也尝试过使用comm
命令,但由于变量它不起作用。
lsblk -d -o NAME,SIZE,TYPE | grep disk
给我看看这些东西
sda 894.3G disk
sdb 894.3G disk
sdc 3.7T disk
sdd 3.7T disk
nbd0 64G disk
和 是否sda
具有sdc
类似sdb
的sdd
物理设备?它们要么是“物理”设备,要么是“逻辑”设备?
这不是我自己的服务器,所以我看不到它的规格。服务器的部署没有我的参与。
我想创建从服务器收集 CPU 信息的脚本。在问题标题中命名的文件的某个服务器输出中,有 12 个model
和model name
彼此相同的字段。这些案例如下面的屏幕截图所示。12 个实例是否不超过 12 个单个物理 CPU 核心,或者有 12 个独立的 CPU?
model
grep单词的结果/proc/cpuinfo
model : 158
model name : Intel(R) Xeon(R) E-2236 CPU @ 3.40GHz
model : 158
model name : Intel(R) Xeon(R) E-2236 CPU @ 3.40GHz
model : 158
model name : Intel(R) Xeon(R) E-2236 CPU @ 3.40GHz
model : 158
model name : Intel(R) Xeon(R) E-2236 CPU @ 3.40GHz
model : 158
model name : Intel(R) Xeon(R) E-2236 CPU @ 3.40GHz
model : 158
model name : Intel(R) Xeon(R) E-2236 CPU @ 3.40GHz
model : 158
model name : Intel(R) Xeon(R) E-2236 CPU @ 3.40GHz
model : 158
model name : Intel(R) Xeon(R) E-2236 CPU @ 3.40GHz
model : 158
model name : Intel(R) Xeon(R) E-2236 CPU @ 3.40GHz
model : 158
model name : Intel(R) Xeon(R) E-2236 CPU @ 3.40GHz
model : 158
model name : Intel(R) Xeon(R) E-2236 CPU @ 3.40GHz
model : 158
model name : Intel(R) Xeon(R) E-2236 CPU @ 3.40GHz
grep include /etc/nginx/nginx.conf
输出:
include /etc/nginx/modules-enabled/*.conf;
include mime.types;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
期望的输出:
include /etc/nginx/modules-enabled/*.conf;
include mime.types;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
我想使用 ps 显示除其中一些进程之外的所有进程 - 排除有关ssh
或kthreadd
进程的信息。
我可以指出我想要排除的进程吗?
目前唯一支持的方式(非 ps)是grep -v
.
由于 SmartCTL 检查的状态而收到警告FAILED!
。
=== START OF SMART DATA SECTION ===
SMART overall-health self-assessment test result: FAILED!
- NVM subsystem reliability has been degraded
同事说这是因为驱动器监控不正确,没有什么不好的。
但看起来并非如此。
是否需要更换驱动器?
SMART/Health Information (NVMe Log 0x02)
Critical Warning: 0x04
Temperature: 36 Celsius
Available Spare: 100%
Available Spare Threshold: 10%
Percentage Used: 100%
Data Units Read: 1,688,838,473 [864 TB]
Data Units Written: 1,293,261,847 [662 TB]
Host Read Commands: 5,457,149,587
Host Write Commands: 3,494,810,022
Controller Busy Time: 62,331
Power Cycles: 30
Power On Hours: 19,491
Unsafe Shutdowns: 15
Media and Data Integrity Errors: 0
Error Information Log Entries: 96
Warning Comp. Temperature Time: 0
Critical Comp. Temperature Time: 0
Temperature Sensor 1: 36 Celsius
Temperature Sensor 2: 48 Celsius
该Percentage Used: 100%
字段是否意味着所有可用磁盘资源(估计保证无问题使用)已耗尽,需要更换磁盘?
我的任务是,如果目录的可用磁盘空间仅持续 2 小时,则发出警报。
老实说,我不知道最好的方法是什么。我不确定空间是否会线性增长并且不会出现急剧的跳跃。
我正在尝试在现有的 JSON 文件中创建新的密钥对,其中键和值都作为变量发送。我有一个单行命令:
jq --arg key "$key" --arg value "$value" 'getpath(path('$key')) = '$value'' "$json"
其中: $key - key $value - value $json - 包含 JSON 数据的文件
例如,我的值是Linux CentOS
,所以当我运行命令时,我会得到
+ jq --arg key .operating_system.NAME --arg value 'CentOS Linux' 'getpath(path(.operating_system.NAME)) = CentOS' Linux ./servername_1648782569.json
jq: error: CentOS/0 is not defined at <top-level>, line 1:
getpath(path(.operating_system.NAME)) = CentOS
jq: 1 compile error
UPD:脚本面对它时我的 JSON 数据:
{
"operating_system": {}
}
我要粘贴的值
NAME="CentOS Linux"
来自
/etc/os-release
赋值函数:
function assign_value ()
{
if [ -z "$1" ]
then
echo __msg_error "Key is not passed as argument."
exit 1
elif [ -z "$2" ]
then
echo __msg_error "Value is not passed as argument."
exit 1
elif [ -z "$3" ]
then
echo __msg_error "JSON file path is not passed as argument."
exit 1
fi
key="$1"
value="$2"
json="$3"
tmp=$(mktemp)
jq --arg key "$key" --arg value "$value" "getpath(path("$key")) = "$value"" "$json" > "$tmp"
mv -- "$tmp" "$json"
}
args 传递给上面函数的地方
...
if test -e /etc/os-release
then
os_release_path='/etc/os-release'
else
os_release_path='/usr/lib/os-release'
fi
. "${os_release_path}"
MAJOR_VERSION_ID=$(echo $VERSION_ID | awk -F '.' '{print $1}')
initialize_new_area "$JSON_AREA" "$JSON"
#assign_value "${JSON_AREA}.NAME" "$NAME" "$JSON"
assign_value "${JSON_AREA}.ID" "$ID" "$JSON"
assign_value "${JSON_AREA}.ID_LIKE" "$ID_LIKE" "$JSON"
assign_value "${JSON_AREA}.MAJOR_VERSION_ID" "$MAJOR_VERSION_ID" "$JSON"
...