Как получить доступ к сетевому диску в скрипте python и автоматически запустить его при выходе пользователя из системы? - PullRequest
1 голос
/ 03 апреля 2020

У меня есть сценарий python, который должен запускаться каждый час для загрузки локальных файлов на общий диск, но сценарий не запускается при выходе из системы с удаленного windows сервера ( У меня есть доступ администратора как к сетевому диску, так и к серверу). Можно ли запускать его каждый час автоматически без входа пользователя?

1 Ответ

2 голосов
/ 03 апреля 2020

Это решение для Linux:

Вы можете создать сценарий bash для запуска файла python и создать cronjob для запуска этого сценария bash.

Ваш bash сценарий будет выглядеть следующим образом:

#!/bin/sh
python location/of/your_script.py

сохранить как автоматизированный. 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 Сервер:

Для 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

Установить разрешения для файла .bat с помощью GUI:

  1. Щелкните правой кнопкой мыши файл .bat
  2. Нажмите «Свойства»
  3. Нажмите «Безопасность» на верхней панели
  4. Убедитесь, что у вашего пользователя есть полномочия «ПОЛНЫЙ», если он не дает разрешения «ПОЛНЫЙ».

Установить разрешения для консоли в Windows:

  1. Открыть консоль
  2. Введите приведенный ниже код в консоли

Примечание: Убедитесь, что вы запускаете консоль с правами администратора в Windows.

icacls c:\your\bat\file\path\automate.bat /grant YourUser:F

. После этого вам необходимо создать запись «Task Schedular». В Windows вы можете использовать инструмент «ЗАДАНИЕ ЗАДАЧИ» для автоматизации ваших задач.

При создании ЗАДАЧИ в планировщике заданий go в «Библиотеке расписаний задач» и следуйте приведенным ниже инструкциям:

  1. Щелкните правой кнопкой мыши задачу
  2. Нажмите Свойства
  3. На вкладке «ОБЩИЕ» вы должны увидеть настройки «Безопасность», убедитесь, что там указан ваш ПОЛЬЗОВАТЕЛЬ.
  4. Активируйте опцию «RUN USER LOGGED ON OR NOT»
  5. Также отметьте опцию «Configure For»
  6. После этих go на вкладке «Actions» на верхняя панель вкладок
  7. Нажмите, чтобы «Редактировать»
  8. Отредактируйте опцию «Начать с», указав расположение основной папки вашего .bat файла. Пример: c: \ your \ bat \ file \ path \

После всех этих шагов я смог без проблем запустить свой скрипт на моей Windows Виртуальной машине. Однако различия в окружающей среде могут вызвать проблемы, пожалуйста, прокомментируйте ваш опыт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...