Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker Cronjob未通过Crontab-e运行_Docker_Powershell_Cron_Powercli - Fatal编程技术网

Docker Cronjob未通过Crontab-e运行

Docker Cronjob未通过Crontab-e运行,docker,powershell,cron,powercli,Docker,Powershell,Cron,Powercli,我尝试每天运行一个脚本,该脚本连接到我的ESXi主机,删除我所有虚拟机的所有快照,然后每天创建新的快照。我试图通过在运行Ubuntu的docker VM上使用VMWare PowerCLI docker image()在docker容器中运行脚本来实现这一点 通过在终端中运行以下命令,我可以成功运行此脚本: /usr/bin/docker run--rm-it--name=powerclicore--entrypoint=“/usr/bin/pwsh”-v/home//config/powerc

我尝试每天运行一个脚本,该脚本连接到我的ESXi主机,删除我所有虚拟机的所有快照,然后每天创建新的快照。我试图通过在运行Ubuntu的docker VM上使用VMWare PowerCLI docker image()在docker容器中运行脚本来实现这一点

通过在终端中运行以下命令,我可以成功运行此脚本:

/usr/bin/docker run--rm-it--name=powerclicore--entrypoint=“/usr/bin/pwsh”-v/home//config/powercli:/scripts vmware/powerclicore/scripts/VMSnapshot.ps1

但是,在通过
crontab-e
将上述命令添加到我的cronfile之后,我的作业没有运行

  GNU nano 4.8                                                                                             /tmp/crontab.EZkliu/crontab                                                                                                       
# Edit this file to introduce tasks to be run by cron.
# 
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
# 
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').
# 
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
# 
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
# 
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
# 
# For more information see the manual pages of crontab(5) and cron(8)
# 
# m h  dom mon dow   command

0 0 * * * /usr/bin/docker run --rm -it --name=powerclicore --entrypoint="/usr/bin/pwsh" -v /home/<redacted>/config/powercli:/scripts vmware/powerclicore /scripts/VMSnapshot.ps1
GNU nano 4.8/tmp/crontab.EZkliu/crontab
#编辑此文件以引入要由cron运行的任务。
# 
#必须通过一行定义要运行的每个任务
#用不同的字段指示任务何时运行
#以及为任务运行什么命令
# 
#定义可以为提供具体值的时间
#分钟(m)、小时(h)、月日(dom)、月(mon),
#和星期几(道指)或在这些字段中使用“*”(表示“任何”)。
# 
#请注意,任务将基于cron的系统启动
#daemon的时间和时区概念。
# 
#crontab作业的输出(包括错误)通过
#向crontab文件所属的用户发送电子邮件(除非重定向)。
# 
#例如,您可以运行所有用户帐户的备份
#每周早上5点,与以下人员一起:
#0 5**1 tar-zcf/var/backups/home.tgz/home/
# 
#有关更多信息,请参阅crontab(5)和cron(8)的手册页
# 
#m h dom mon dow命令
0 0***/usr/bin/docker run--rm-it--name=powerclicore--entrypoint=“/usr/bin/pwsh”-v/home//config/powercli:/scripts vmware/powerclicore/scripts/VMSnapshot.ps1

我做错了吗?第二双眼睛将不胜感激

@KazikM。经过一些故障排除后,我终于能够使用您的建议来实现这一点。我创建了一个Bash脚本,该脚本调用了我试图放入int crontab的Docker命令,然后使用crontab调用了Bash脚本:
0***/bin/Bash/home//config/powerclicore/VMSnapshot Bash.sh
。再次感谢你的帮助

@KazikM。经过一些故障排除后,我终于能够使用您的建议来实现这一点。我创建了一个Bash脚本,该脚本调用了我试图放入int crontab的Docker命令,然后使用crontab调用了Bash脚本:
0***/bin/Bash/home//config/powerclicore/VMSnapshot Bash.sh
。再次感谢你的帮助

我认为在/usr/local/bin(或系统的其他适当位置)中创建一个脚本文件并从cron调用该脚本会更好(并且更易于维护和更新)。您不需要每次更新脚本时都更改cron。@KazikM谢谢。我试试这个。快速提问:知道如何让此作业比今晚凌晨12点运行快得多吗?将此部分
0***
更改为您想要的其他值。您可以检查各种组合。只需用其他合适的值替换星号即可。它甚至可以一天运行多次,甚至每分钟都可以。谢谢你的回复。因此,我实际上走了一条不同的路线,并确定该命令可以简化为
/usr/bin/docker powerclicore vmsnapshot start
。我确认,当我作为当前用户运行此命令时,它会成功执行。但是,当我通过
crontab-e
将它添加到我的crontab时,就像这样:
0***/usr/bin/docker powerclicore vmsnapshot start
,它似乎没有运行,因为我的虚拟机没有备份。你知道为什么我手动运行这个命令,但不是通过将它添加到我的crontab中来运行它吗?看起来这可能是docker特有的问题,但不幸的是,我对docker不太熟悉。抱歉。我认为在/usr/local/bin(或系统的其他适当位置)中创建一个脚本文件并从cron调用该脚本会更好(并且更易于维护和更新)。您不需要每次更新脚本时都更改cron。@KazikM谢谢。我试试这个。快速提问:知道如何让此作业比今晚凌晨12点运行快得多吗?将此部分
0***
更改为您想要的其他值。您可以检查各种组合。只需用其他合适的值替换星号即可。它甚至可以一天运行多次,甚至每分钟都可以。谢谢你的回复。因此,我实际上走了一条不同的路线,并确定该命令可以简化为
/usr/bin/docker powerclicore vmsnapshot start
。我确认,当我作为当前用户运行此命令时,它会成功执行。但是,当我通过
crontab-e
将它添加到我的crontab时,就像这样:
0***/usr/bin/docker powerclicore vmsnapshot start
,它似乎没有运行,因为我的虚拟机没有备份。你知道为什么我手动运行这个命令,但不是通过将它添加到我的crontab中来运行它吗?看起来这可能是docker特有的问题,但不幸的是,我对docker不太熟悉。很抱歉