-
+1
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
stop() {
PIDS=$(/sbin/pidof $PNAME)
CNT=0
if [[ $PIDS != "" ]]; then
echo -n "Stopping $PNAME: "
killall $PNAME && echo "ok" || echo "failed"
while [[ $PIDS != "" ]]
do
PIDS=$(/sbin/pidof $PNAME)
echo -n "."
sleep 1
CNT=$(($CNT+1))
if [[ $CNT -eq 3 ]]; then killall -9 $PNAME;echo -e "\n$PNAME: Force kill";break; fi
done
echo
else echo "$PNAME: don't start"
fi
}
Так автор видел выключение процесса. Процесс работает с файлами на жестком диске и ему важна их целостность, поэтому за 3 секунды не завершался. А еще при gracefully shutdown пишется обновление конфига процесса на диск. Но кого волнуют такие мелочи если оно уже работает в проде 7+ лет
codemeow,
04 Февраля 2022
-
+2
- 1
- 2
- 3
export $(grep PROJECT_NAME .env | xargs)
export $(grep USERID .env | xargs)
docker exec -it -u ${USERID} ${PROJECT_NAME}_application bash -l
На минуточку в проекте написанный лично разрабом до меня docker-compose.
TrueGameover,
15 Декабря 2021
-
+1
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
~ cat test.sh
#!/bin/bash
for i in "$@"; do
echo $i
done
arglist="$@"
for i in $arglist; do
echo $i
done
~ sh test.sh 1 2 '3 4'
1
2
3 4
1
2
3
4
~
Застрял на отладке одного скрипта, как этим правильно пользоваться?
vistefan,
01 Декабря 2021
-
+4
- 1
- 2
- 3
- 4
- 5
- 6
#!/usr/bin/env bash
URL=https://foo.bar/baz.zip
PATH=/home/foo/bar/baz.zip
wget -O "$PATH" "$URL"
И только потом до мена дошло…
ISO,
26 Октября 2021
-
−1
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
#!/bin/bash
status=$(xinput list-props 11 | grep 'Device Enabled' | tail -c 2 | tr -d '\n')
echo "Current TB status: $status"
if [[ $status = "0" ]]
then
xinput enable 11
echo "Enabled touchpad!"
else
xinput disable 11
echo "Disabled touchpad!"
fi
Как вам мой скриптик?
JloJle4Ka,
25 Октября 2021
-
0
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
function error {
printf "ERROR: $1\n" >&2
}
function warning {
printf "WARNING: $1\n"
}
function info {
printf "INFO: $1\n"
}
function println {
printf "$1\n"
}
function block {
printf "\n$3\n$1 \t[$2]\n$3\n"
}
function fail {
println "\n"
println "FAIL"$1
println
}
function checkz {
if [ -z $1 ]; then
error "empty string"
return 1
fi
info "string \"$1\" \t[OK]"
return 0
}
function checkx {
if [ ! -x $1 ]; then
error "$1 \t[NOT FOUND]"
return 1
fi
info "$1 \t[OK]"
return 0
}
function checkb {
if [ ! -b $1 ]; then
error "$1 \t[NOT FOUND]"
return 1
fi
info "$1 \t[OK]"
return 0
}
function checkc {
if [ ! -c $1 ]; then
error "$1 \t[NOT FOUND]"
return 1
fi
info "$1 \t[OK]"
return 0
}
function checkf {
if [ ! -f $1 ]; then
error "$1 \t[NOT FOUND]"
return 1
fi
info "$1 \t[OK]"
return 0
}
function checkd {
if [ ! -d $1 ]; then
error "$1 \t[NOT FOUND]"
return 1
fi
info "$1 \t[OK]"
return 0
}
function checkd_mk {
if [ ! -d $1 ]; then
info "$1 \t[NOT FOUND]"
info "$1 \t[MAKING...]"
mkdir -p $1
checkd $1
return $?
fi
info "$1 \t[OK]"
return 0
}
function sized {
sized=($(ls $1))
return ${#sized[@]}
}
Вспомогательные функции проверки файлов и директорий, а также вывода ошибок
somebyte,
09 Сентября 2021
-
0
https://ideone.com/QSSlWV
3_dar,
08 Сентября 2021
-
+4
- 1
- 2
- 3
- 4
- 5
- 6
- 7
#!/bin/bash
# apt install jq w3m curl
curl https://gcode.space/api/comments \
| jq -r 'map("-"*99+"<br>"+.user_name+" "+.posted+"<br>","<ul>"+.text+"</ul>") | reduce .[] as $item (""; . + $item) ' \
| w3m -T text/html -cols 99 -dump \
| less -R
Консольная читалка для стока ГК
3.14159265,
08 Сентября 2021
-
+2
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
#!/bin/bash
set -euo pipefail
host() {
echo "n${1}.local"
}
node() {
echo "erl@$(host $1)"
}
build() {
[ "${1}" -eq "1" ] && echo "build: ."
}
container() {
cat <<EOF
worker${1}:
$(build $1)
image: worker
hostname: $(host $1)
networks:
backplane:
aliases:
- $(host $1)
environment:
- "NODE_NAME=$(node $1)"
- ... прочая питушня
EOF
}
main() {
cat <<EOF
version: '3.3'
networks:
backplane:
services:
$(node 1)
$(node 2)
...
EOF
}
main > docker-compose.yml
docker-compose $@
Как тебе такое, Helm?
CHayT,
13 Августа 2021
-
+4
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
#!/bin/sh
count_roosters(){
echo $1: `grep -c -P $1 gk_users.csv`
}
for rooster_name in nemyx_HoMep g0_14 Antibagor _daSome spooler ebebebeb assosin pdro alisher 14sun bot.number ,rss
do
count_roosters $rooster_name
done
Выхлоп:
nemyx_HoMep: 40817
g0_14: 1434
Antibagor: 1404
_daSome: 1001
spooler: 1000
ebebebeb: 678
assosin: 490
pdro: 300
alisher: 281
14sun: 250
bot.number: 131
,rss: 127
3EHuTHblu_nemyx,
06 Августа 2021