Eu mudei /etc/cron.d/filename
e adicionei uma nova tarefa.
* * * * * /bin/bash /root/scripts/scriptname.sh
Mas esse trabalho não é executado. Reiniciar o Cron não ajuda.
Eu mudei /etc/cron.d/filename
e adicionei uma nova tarefa.
* * * * * /bin/bash /root/scripts/scriptname.sh
Mas esse trabalho não é executado. Reiniciar o Cron não ajuda.
Tenho contêineres Docker com processos específicos, mas todos começaram com runsvdir
.
/usr/bin/containerd-shim-runc-v2 -namespace moby -id ...
\_ /bin/bash /assets/wrapper
\_ runsvdir -P /opt/...
Quero inserir um endereço IP dentro dos arquivos de configuração do Nginx. Quero inserir o endereço IP com o read
comando, mas não quero armazenar a entrada em uma variável adicional. Então eu quero algo como:
grep -ir $(read) /etc/nginx/
Qual é a maneira correta de usar read
o argumento interno?
Quero obter uma lista de bancos de dados PostgreSQL. O PostgreSQL funciona por postgres
usuário, então preciso usar o runuser
.
Enquanto eu executo
runuser -l postgres -c 'psql -tc "SELECT datname FROM pg_database WHERE datname <> ALL ('{template0,template1,postgres}');"'
eu recebo
ERROR: column "template0" does not exist
LINE 1: ...CT datname FROM pg_database WHERE datname <> ALL (template0)...
Então, se eu executar o comando runuser ao fazer login, postgres
ele su
funcionará.
Tenho uma lista linha por linha dos domínios que obtive
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
da configuração do Nginx.
Legivelmente:
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
Eu também tenho vários arquivos de configuração dentro do /etc/nginx/conf.d/
diretório cujo nome é domain.conf
.
Quero extrair apenas domínios da primeira lista descritos pelos arquivos de configuração da segunda lista.
O que posso fazer para mesclar essas duas listas e extrair da lista final domínios exclusivos, mantendo apenas os domínios contidos em ambas as listas?
A segunda lista que faço por
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
Quero usar essas coisas no script Bash, para que as listas permaneçam como valores de variáveis e não como arquivos. Tentei usar comm
o comando também, mas devido às variáveis não funciona.
lsblk -d -o NAME,SIZE,TYPE | grep disk
mostre-me essas coisas
sda 894.3G disk
sdb 894.3G disk
sdc 3.7T disk
sdd 3.7T disk
nbd0 64G disk
São sda
e sdc
possuem dispositivos físicos semelhantes sdb
? sdd
Ou são dispositivos "físicos" e "lógicos"?
Não é meu próprio servidor, por isso não consigo ver suas especificações. O servidor foi implantado sem minha participação.
Quero criar um script coletando informações da CPU do servidor. Em determinada saída do servidor do arquivo nomeado na pergunta, o título possui 12 model
campos model name
iguais entre si. Este caso é mostrado na imagem abaixo. As 12 instâncias não têm mais do que 12 núcleos de CPU física única ou há 12 CPUs separadas?
Resultado do grep model
da palavra de/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
saída:
include /etc/nginx/modules-enabled/*.conf;
include mime.types;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
saída desejada:
include /etc/nginx/modules-enabled/*.conf;
include mime.types;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
Quero usar ps para mostrar todos os processos, exceto alguns deles - excluir informações sobre ssh
ou kthreadd
processos.
Posso indicar processos que desejo excluir?
A única forma suportada por enquanto - não ps - é grep -v
.
Recebi um aviso devido ao FAILED!
estado da verificação SmartCTL.
=== START OF SMART DATA SECTION ===
SMART overall-health self-assessment test result: FAILED!
- NVM subsystem reliability has been degraded
Colega disse que isso é para monitoramento incorreto da unidade e nada de ruim não aconteceria.
Mas isso não parece ser assim.
A unidade precisa ser substituída?
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
O Percentage Used: 100%
campo significa que todos os recursos de disco disponíveis (a garantia de estimativa de uso sem problemas) estão esgotados e há necessidade de substituir o disco?
Tenho a tarefa de fazer alertas se houver espaço livre em disco por apenas 2 horas para um diretório com crescimento dinâmico.
Honestamente, não sei qual é a melhor maneira de fazer isso. Não tenho certeza se o espaço crescerá linearmente e não haverá saltos bruscos.
Estou tentando criar um novo par de chaves no arquivo JSON existente, onde a chave e o valor são enviados como variáveis. Eu tenho o comando de uma linha:
jq --arg key "$key" --arg value "$value" 'getpath(path('$key')) = '$value'' "$json"
onde: $key - key $value - value $json - arquivo contendo dados JSON
Por exemplo, meu valor é Linux CentOS
, então quando estou executando o comando, obterei
+ 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 : Meus dados JSON no momento em que o script o enfrenta:
{
"operating_system": {}
}
O valor que estou tentando colar é
NAME="CentOS Linux"
de
/etc/os-release
a função que atribui valores:
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"
}
o lugar de onde os argumentos passaram a funcionar acima
...
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"
...
Há uma tarefa para automatizar a captura de informações dos servidores. No entanto, não consigo localizar nenhum controlador RAID de hardware ou software.
Devido às várias maneiras pelas quais cada fornecedor descreve seu controlador, estou lutando para definir claramente quais dispositivos de bloco mostrados são RAID.
Suponho que a melhor maneira de resolver esse problema seria usar utilitários integrados do Linux.
Se minhas suposições estiverem erradas, por favor me informe.