#linux #mongodb #bash #kubernetes #containers
#linux #mongodb #bash #kubernetes #контейнеры
Вопрос:
Я пытаюсь запускать команды mongo через мой файл скрипта bash.
У меня есть sample.sh — запуск с помощью ./sample.sh
Я хочу запустить приведенную ниже команду внутри моего sample.sh файл. Это скрипт bash. Я хочу, чтобы команды mongo запускались внутри файла, а не внутри оболочки.
kubectl exec $mongoPodName -c mongo-mongodb -- mongo db.createUser({user:"admin",pwd:"123456",roles:[{role:"root",db:"admin"}]})
Я получаю сообщение об ошибке ниже :
./generate-service-dbs.sh: line 37: syntax error near unexpected token `('
./generate-service-dbs.sh: line 37: `kubectl exec $mongoPodName -c mongo-mongodb -- mongo db.createUser({user:"admin",pwd:"123456",roles:[{role:"root",db:"admin"}]})'
Ответ №1:
Разве вам не нужно запускать command с --eval
?
kubectl exec $mongoPodName -c mongo-mongodb -- mongo --eval 'db.createUser({user:"admin",pwd:"123456",roles:[{role:"root",db:"admin"}]})'
Комментарии:
1. Я пытаюсь —eval для этой команды « kubectl exec $mongoPodName -c mongo-mongodb — mongo —eval ‘использовать MyTest’ « . Выдает ошибку: « 2020-08-18T22: 31:53.745 0000 E ЗАПРОС [js] неперехваченное исключение: ошибка синтаксиса: неожиданный токен: идентификатор: @ (оценка оболочки): 1: 4 «
2. Мне нужно создать mongodbs с пользователем и ролями из файлов *.ini, поэтому я должен запускать многострочные команды mongo в моем sample.sh файл, но у меня много ошибок.
3. Боюсь, я не слишком знаком с mongodb, но вы должны иметь возможность выполнить несколько команд в файле .js. Пожалуйста, посмотрите эту ссылку: docs.mongodb.com/manual/reference/program/mongo /…
4. Здесь нам нужно использовать двойные кавычки («) вместо одинарных кавычек. Я тестировал в обоих случаях, и тот, который работает, — с одинарными кавычками.
kubectl exec $mongoPodName -c mongo-mongodb -- mongo --eval "db.createUser({user:"admin",pwd:"123456",roles:[{role:"root",db:"admin"}]});"