기본적으로 Python 패키지, 바이너리 및 기타 지속적인 업데이트가 필요한 프로그램이 있으며 나는 crontab 항목을 만들 수 있는지 알고 싶습니다. 기본적으로 매월이 업데이트를 실행하는 BASH 스크립트를 실행하십시오. 나는이 목적을 위해 작성한 짧은 테스트 스크립트를 호출하는 crontab 항목을 성공적으로 만들었습니다. 스크립트는 문제가 아니지만 질문에 답하는 데 도움이된다면 다음과 같습니다. 의심 스럽습니다. 몇 시간 만 입력해야하는 경우 Crontab을 사용하여 패키지를 관리 할 수 있습니까?
#!/bin/bash
#Program update automator script
#Leveraging crontab to update all my neuroimaging, python, and conda packages monthly without having to do it myself because I forget and am a lazy POS
#Note - Am Using Conda and Pip for package management and not apt-get, which I don't think I have installed because I had read somewhere you can get discrepancies in processes if you have apt-get and one of the other ones both on the system
#Created 12.27.17
#Updated 12.27.17
#Updates Conda itself and cleans unused packages and tarballs out
conda update conda && conda update anaconda && conda clean --packages --tarballs
#Update AFNI binaries
@update.afni.binaries -defaults -do_extras
#Updating important Python libraries
conda update python ipython ipython-notebook matplotlib networkx numpy scipy sphinx traits dateutil nose pydot
#Update Nipype libraries
pip install --upgrade nibabel nipype rdflib nipy dipy pygraphviz graphviz
난 그냥 그것이 오류없이 실행되었던 테스트,이 항목을 만들기 전에이 모든 명령을 실행했기 때문에
. 문제는 업데이트가 필요할 때만 업데이트를 실행할 때 전체를 얻는 것입니다.다음 패키지가 업데이트됩니다 : 진행 ([y]/n)? y
사용자 입력이 필요합니다. 'y'를 입력하는 과정을 자동화 할 수있는 방법이 있습니까? 내가 볼 수있는 몇 가지 문제점이 있습니다.
- 가장 중요한 점은 입력이 필요한 지점에 도달하면 크론이 충돌한다는 것입니다. 나는이 자신을 아직 보지 못했지만 이것은 내가 읽은 것입니다.
- 나는 언제나 입력을 제공 할 필요가 있을지 잘 모르겠다. 어떤 명령은 업데이트가 필요하고 어떤 프로그램은 필요하지 않을지 항상 가변적이기 때문에, 나는 항상 3 'y를 입력 할 필요가 없다. '같은 명령이 실행에서 실행까지 동일한 입력을 필요로하는 것처럼 아닙니다.
이것은 나쁜 생각입니까? 다음과 같이
나의 현재 crontab 항목은 다음과 같습니다
0 10 1 * * source /Users/mycomputer/.bash_profile; /bin/sh /Users/mycomputer/Desktop/auto_package_updater.sh
아, '크래시'에 사과드립니다. 나는 '멈춰라.'고 말해야했다. 내가 올바른 경로와 소싱을 통해 다음과 같이하면 이론적으로 'y'가 스크립트에 포함되지만 'y'를 입력하는 데 필요한 여러 인스턴스에서 작동 할 것입니다. * * * * * y | myscript.sh 자동으로 업데이트하는 것과 같이 가장 좋은 패키지가 무엇인지 잊어 버리기 때문에 좋을 것이라고 확신하지 못했습니다.하지만 가장 좋은 방법은 아닙니다. – chainhomelow
멈추는 것은'cron' 데몬이 아니라, 특정하고 버그가 많은 cron 작업뿐입니다. 별로 중요하지 않습니다. –
오 기다림, 파이핑 예 (1) 스크립트가 종료 될 때까지 'y'를 반복적으로 파이프합니까? (I.E. * * * * yes (1) | myscript.sh). 아, 제대로 이해하고 있다면 여러 개의 'y'가 필요합니다. 그러한 종류의 반복 된 입력이 의도하지 않은 행동을 유발할 수 있습니까? – chainhomelow