.net core 在RedHat上通过cron运行dotnet失败
我们有一个dotnet核心脚本,用于索引一些文件。我们利用RedHat软件集合,使dotnet等项目可以与RHEL设置相结合 要运行脚本,请执行以下操作:.net core 在RedHat上通过cron运行dotnet失败,.net-core,cron,rhel,rhel7,software-collections,.net Core,Cron,Rhel,Rhel7,Software Collections,我们有一个dotnet核心脚本,用于索引一些文件。我们利用RedHat软件集合,使dotnet等项目可以与RHEL设置相结合 要运行脚本,请执行以下操作: 源scl_源启用rh-dotnet30 /opt/rh/rh-dotnet30/root/usr/bin/dotnet/d/h/fileprocessor.dll 1 我们想在cron中运行它,但我们无法让它工作。我们尝试了以下方法: 将“source”命令添加到bash概要文件中,但这对我们来说似乎不可靠,并且不能在cron事件上运行
源scl_源启用rh-dotnet30
/opt/rh/rh-dotnet30/root/usr/bin/dotnet/d/h/fileprocessor.dll 1
我们想在cron中运行它,但我们无法让它工作。我们尝试了以下方法:
“以下内容适合我。但我使用的是
rh-dotnet31
(.NET Core 3.1),因为rh-dotnet30
(.NET Core 3.0)不受支持:
$ sudo yum install rh-dotnet31 -y
$ cd ~
$ mkdir hello
$ cd hello
$ scl enable rh-dotnet31 bash
$ dotnet new console
$ dotnet publish
$ exit # this exits from the subshell started from scl enable command above
$ cp -a bin/Debug/netcoreapp3.1/publish ../hello-bin
$ cd ~
并将其放入/test.sh
文件中:
#!/bin/bash
echo "test.sh running now...."
source scl_source enable rh-dotnet31
dotnet $HOME/hello-bin/hello.dll 1
$ crontab -e
然后在此文件中添加下面的行。这个每分钟运行一次脚本
* * * * * $HOME/test.sh >> $HOME/test.cron.log 2>&1
$ tail -f test.cron.log
test.sh running now....
Hello World!
test.sh running now....
Hello World!
test.sh running now....
Hello World!
test.sh running now....
Hello World!
test.sh running now....
Hello World!
我们遇到的问题是,只安装了运行时,而没有安装SDK。一旦安装了SDK(包括许多其他依赖项),它就可以正常工作了 您能否共享您尝试的每个步骤的日志/错误消息?此外,此crontab是否适用于普通用户?或者作为普通用户的root?Crontab。此外,只有错误才是真正的“源代码”,而不是在脚本中运行。您有机会重新尝试吗?我的回答对你有用吗?它有助于确定问题吗?我们确定了问题,现在发布了答案。
$ tail -f test.cron.log
test.sh running now....
Hello World!
test.sh running now....
Hello World!
test.sh running now....
Hello World!
test.sh running now....
Hello World!
test.sh running now....
Hello World!