Есть докер, В докере есть cron и известная проблема, когда при запуске скрипта cron'ом скрипт не получает переменные окружения установленные при запуске контейнера. Есть и решение при запуске контейнера сделать:
env /var/env.txt
а в crontab написать что-то типа
* * * * * root env - `cat /var/env.txt` myscript.sh
Но проблема в том, что в значении моих переменных есть проблемы и при загрузке их из файла env спотыкается об них и падает. Я пробовал сделать так:
* * * * * root env - "`cat /var/env.txt`" myscript.sh
пробовал пропускать через sed и ставить кавычки вначале и в конце каждой строчки в файле /var/env.txt - не помагает, как правильно экранировать эти чертовы пробелы.
Спасибо.
UPD Что я пробовал
test.sh
root@d5d6155fa06f:/# env | grep "VAR1"
VAR1=HA HA HA
root@d5d6155fa06f:/# env > /home/test/env.txt
root@d5d6155fa06f:/# cat /home/test/env.txt | grep "VAR1"
VAR1=HA HA HA
root@d5d6155fa06f:/# env -i "VAR1=HA HA HA" /home/test/test.sh
VAR1=HA HA HA
root@d5d6155fa06f:/# env -i `cat /home/test/env.txt` /home/test/test.sh
env: 1049: No such file or directory
root@d5d6155fa06f:/# exit
exit
gadmin@GPC:~$ docker run -it -v /var/nod32:/var/www/html/nod32 ghostku/nod32 /bin/bash
root@bef86556528f:/# env | grep "VAR1"
VAR1=HA HA HA
root@bef86556528f:/# env > /home/test/
build.sh tada.sh test.sh
root@bef86556528f:/# env > /home/test/env.txt
root@bef86556528f:/# cat /home/test/env.txt | grep "VAR1"
VAR1=HA HA HA
root@bef86556528f:/# env -i "VAR1=HA HA HA" /home/test/test.sh
VAR1=HA HA HA
root@bef86556528f:/# env -i `cat /home/test/env.txt` /home/test/test.sh
<b>env: HA: No such file or directory</b>
root@bef86556528f:/# sed -e 's/^/"/g' -e 's/$/"/g' /home/test/env.txt > /home/test/env1.txt
root@bef86556528f:/# cat /home/test/env1.txt | grep "VAR1"
"VAR1=HA HA HA"
root@bef86556528f:/# env -i `cat /home/test/env1.txt` /home/test/test.sh
<b>env: HA: No such file or directory</b>
root@bef86556528f:/# sed -e 's/=/="/g' -e 's/$/"/g' /home/test/env.txt > /home/test/env2.txt
root@bef86556528f:/# cat /home/test/env2.txt | grep "VAR1"
VAR1="HA HA HA"
root@bef86556528f:/# env -i `cat /home/test/env2.txt` /home/test/test.sh
<b>env: HA: No such file or directory</b>