mysql... | awk '{ print "diff is", $0 }'
Или просто
mysql... 'SELECT CONCAT("diff is ", VALUE) FROM...'
Изнутриawk
:
awk 'BEGIN { cmd = "mysql..." }
{ cmd | getline value;
printf("diff is %s\n", value); # or print "diff is", value;
close(cmd) }'
Это запустит команду один раз для каждой строки ввода в сценарий awk
. Без close()
он был бы запущен один раз и давал бы value
значение каждой последующей строки вывода команды.
Ваш скрипт использует $lastdiff
вместо lastdiff
с getline
. В awk
$lastdiff
относится к номеру поля lastdiff
текущей входной записи.
Обычные пользователи не могут изменять сетевые интерфейсы.
напр. мой не -пользователь root может просматривать детали интерфейса с помощьюifconfig
:
$ ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether xx:xx:xx:xx:xx:xx txqueuelen 1000 (Ethernet)
RX packets 178399193 bytes 213874320365 (199.1 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 50539358 bytes 36748192570 (34.2 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device memory 0xba200000-ba21ffff
но не могу отключить интерфейс:
$ ifconfig eth0 down
SIOCSIFFLAGS: Operation not permitted
Короче говоря, не позволяйте им работать ifconfig
как root (, например. с sudo
), и вам не нужно об этом беспокоиться.
Вы пробовали запустить /bin/rm
? А вы читали предупреждение в начале статьи?
Disclaimer : This is just a hack, not recommended for Actual Production Use
Я бы также прочитал комментарии к этому ответу на дубликат в Stack Overflow.
Если вы хотите на самом деле ограничить пользователя безопасно , вам, вероятно, придется изучить структуру разрешений, такую как SELinux или AppArmor.