每当我将.sh脚本作为cronjob运行时,我都无法显示IP地址。每当我使用./myscript.sh执行脚本时,我都能够在html文件中显示ip地址。请让我知道什么是错的。
#!/bin/bash
container_id=$(docker ps -a | cut -c 1-20)
container_id_ele=($container_id)
container_status=$(docker ps -a | cut -c 80-100)
container_status_ele=($container_status)
last_run=`date`
hostip=`ifconfig eno1 2>/dev/null|awk '/inet addr:/ {print $2}'|sed 's/addr://'`
cat > /home/docker/index.html <<EOF
<html>
<body>
<table border=1>
<tr>
<td>Host</td>
<td>Container Id</td>
<td>Status</td>
</tr>
<tr>
<td> $hostip </td>
<td> ${container_id_ele[2]}</td>
<td> ${container_status_ele[1]} ${container_status_ele[2]} ${container_status_ele[3]} </td>
</tr>
</table>
Note : Status will be updated every 60 seconds <br/>
Last run :$last_run
</body>
</html>
EOF
`docker cp /home/docker/index.html tomcat:/opt/tomcat/webapps/ROOT/`
答案 0 :(得分:1)
好的剧本。这里几乎没有改写。
#!/bin/bash
export myhostip=`hostname -I`
echo $myhostip
cat > ./index.html <<EOF
<html>
<body>
<h1>$myhostip</h1>
</body>
</html>
EOF
它正在运作。