我有一个python脚本,需要每小时运行一次以将本地文件上传到共享驱动器,但是当我从远程 windows服务器注销时,该脚本不会运行(我有管理员是否可以访问网络驱动器和服务器),是否可以让它每小时自动运行一次而无需用户登录?
wangxd925 回答:如何在python脚本中访问网络驱动器并在用户注销时自动运行它?
这是针对Linux的解决方案:
您可以创建一个bash脚本来运行python文件,并创建一个cronjob来运行该bash脚本。
您的bash脚本如下所示:
#!/bin/sh
python location/of/your_script.py
另存为automate.sh并授予自动运行此脚本的权限:
sudo chmod +x location/of/your_script.py
sudo chmod +x location/of/your_bash_script.sh
之后,我们必须创建cronjob,您可以使用此链接为您创建合适的cronjob。
https://crontab-generator.org/
我们需要在列表中添加该cronjob:
crontab -e
打开此cronjob编辑器时,请将cronjob放在底部并保存。它应该可以正常运行。
这是Windows Server的解决方案:
对于Windows,您需要创建一个.bat脚本来执行。
automate.bat脚本如下所示:
C:\your\python\executable\path\python.exe "C:/your/python/file/path/you/want/to/execute/your-python-script.py"
pause
使用GUI设置.bat文件的权限:
- 右键单击.bat文件
- 点击“属性”
- 点击顶部栏中的“安全性”
- 如果您的用户未授予“ FULL”权限,请确保其具有“ FULL”权限。
在Windows中使用控制台设置权限:
- 打开控制台
- 在控制台中输入以下代码
注意:确保在Windows中以“管理员”权限运行控制台。
icacls c:\your\bat\file\path\automate.bat /grant YourUser:F
此步骤之后,您需要创建“任务计划”条目。在Windows中,您可以使用“任务时间表”工具来自动执行任务。
创建任务时,请在“任务计划程序”中进入“任务计划库”,然后执行以下步骤:
- 右键单击您的任务
- 点击属性
- 在“常规”选项卡中,您应该能够看到“安全性”设置,请确保在此处指定了USER。
- 激活“是否已登录运行用户”选项
- 还要选中“配置为”选项
- 之后,进入顶部标签栏上的“操作”标签
- 点击以“编辑”
- 使用.bat文件的主文件夹位置编辑“开始于”选项。例如:c:\ your \ bat \ file \ path \
所有这些步骤之后,我能够在Windows虚拟机上运行脚本而没有任何问题。但是,环境差异可能会引起问题,请评论您的经验。