У меня есть файл, расположенный на моей коробке Linux, который генерируется скриптом Python, файл помещается в каталог /root /
Мой скрипт bash выглядит так:
#!/bin/bash
# Run the HR Data feed
cd /root/hr-feed
# the file created here will land one directory above the scripts in /root/
python main.py
# Transfer the file to the server
cd /root/
smbclient \\\\[SERVER]\\[SHARE] --workgroup=[WRKGRP] --user=[USR] [PASS] -c 'put HRDataFeed.txt'
Все работает по желанию до последней строки. Это должно быть выполнено с ошибкой (хотя я не совсем уверен, как выяснить, что это может быть за ошибка).
Эта работа выполняется из crontab. Который, как я понимаю, работает в несколько иной среде, чем root (или, по крайней мере, похоже, как он себя ведет).
Если я выполняю сценарий напрямую (не из crontab), он запускается без сбоев, и файл передается на конечный сервер Windows. Я предполагаю, что, возможно, мне нужно указать полный путь к файлу HRDataFeed.txt как часть команды put; однако я не могу понять это.
smbclient .... -c "put /root/HRDataFeed.txt"
приводит к ошибке, что файл /root/HRDataFeed.txt не может быть найден.
Любой вклад с благодарностью.
РЕДАКТИРОВАТЬ
Я попытался обновить свой crontab для чтения (для тестирования у меня он работал каждую минуту)
- /root/hrdatafeed> last_run.txt
Однако ничто, казалось, никогда не попадало в файл.
Я постараюсь просто добавить канал непосредственно в команду SMBClient.