Как правильно отредактировать файл и добавить к нему данные json с помощью скрипта bash? - PullRequest
0 голосов
/ 26 февраля 2020

Мне нужно добавить ротацию журнала к docker, и для этого мне нужно отредактировать файл демона и добавить к нему json. Я написал скрипт ниже, но он не работает.

Если файл не существует, он создаст файл, но он будет пустым, и если он существует, он не сможет добавить данные json к нему с ошибкой ниже:

modifying /etc/docker/daemon.json for log rotation
Job for docker.service failed because the control process exited with error code.
See "systemctl status docker.service" and "journalctl -xe" for details.

Я тоже могу сделать это с python, но я хочу знать, что я делаю неправильно?

Сценарий:

sudo apt install -y jq

if [ ! -f /etc/docker/daemon.json ]; then
    echo "creating /etc/docker/daemon.json and configure it for log rotation"
    jq -n '{
      "log-driver": "json-file",
      "log-opts": {
        "max-size": "10m",
        "max-file": "3" 
      }
    }' > /etc/docker/daemon.json
else
    echo "modifying /etc/docker/daemon.json for log rotation"
    jq --argjson obj '{
      "log-driver": "json-file",
      "log-opts": {
        "max-size": "10m",
        "max-file": "3" 
      }
    }' '. + $obj'< /etc/docker/daemon.json > tmp && sudo mv tmp /etc/docker/daemon.json
fi

sudo systemctl restart docker
...