В продолжение ответа Джеффа Шаллера у нас есть файл start_iptables.sh
, который, по сути, является одноразовой операцией, настраивающей правила iptables. Мы сохраняем правила, используя iptables-persistent save
, и запускаем файл только при внесении изменений. В конце мы перезапускаем наш стек Docker, поскольку все контейнеры Docker вышли.
echo "-------------------------------------------------"
echo "Restarting Docker stack..."
bash /path/to/start-docker-stack
echo "-------------------------------------------------"
du
использует stat (2)
, чтобы найти количество блоков, используемых файлом. Если вы запустите stat big
, вы увидите, что количество блоков совпадает с числом, указанным в du
.
Вы можете заставить du
подсчитывать байты, используя параметр -b
; тогда его вывод соответствует ls
.
В обоих случаях он использует stat (2)
(или, скорее, fstatat (2)
, по крайней мере, в моей версии):
$ strace du big|&grep big
execve("/usr/bin/du", ["du", "big"], [/* 57 vars */]) = 0
newfstatat(AT_FDCWD, "big", {st_mode=S_IFREG|0644, st_size=2147483648, ...}, AT_SYMLINK_NOFOLLOW) = 0
write(1, "0\tbig\n", 60 big
Разница в обработке , видимый в du.c
.