면책 조항 :이 솔루션 나 자신을 선택하지 않을 것입니다. Kurtis Rader가 제안한 클라우드 스토리지 클라이언트를 사용하거나 git 저장소 (+ symlinks)에서 변경 사항을 가져 오기위한주기적인 cron 작업이 훨씬 쉽고 오류가없는 것처럼 보입니다. 당신이 또는 클라우드 스토리지와 동기화하지 않을 수없는 이러한 시스템에
, 당신은 예를 들어
curl
를 사용하여, 특히 구성 파일을 다운로드 할 수 있습니다. 일부 중요한 I/O 시간은 HTTP 캐시 제어 메커니즘을 사용하여 절약 할 수 있습니다. 캐시 제어의 유무에 관계없이 매번 (또는 각 X 시간 또는 각 Y 시간이 경과하면) 원격 서버에 대한 연결을 만들어야하며, 이는 이미 꽤 많은 시간을 낭비합니다.
#!/usr/bin/fish
set -l TMP_CONFIG /tmp/shared_config.fish
curl -s -o $TMP_CONFIG -D $TMP_CONFIG.headers \
-H "If-None-Match: \"$SHARED_CONFIG_ETAG\"" \
https://raw.githubusercontent.com/woj/dotfiles/master/fish/config.fish
if test -s $TMP_CONFIG
mv $TMP_CONFIG ~/.config/fish/conf.d/shared_config.fish
set -U SHARED_CONFIG_ETAG (sed -En 's/ETag: "(\w+)"/\1/p' $TMP_CONFIG.headers)
end
참고 :
당신은 cron 작업에서이 작업을 실행,하지만 당신은 모든 초기화에 구성 파일을 업데이트 주장하는 경우, 이미 자동으로 fish
에 의해로드 아니에요 경로, 예를 들면의 구성을 배치 스크립트를 변경할 수 있습니다
source ~/.config/fish/shared_config.fish
다음
이 전체 스크립트 파일 당신의
config.fish
실행에mv $TMP_CONFIG ~/.config/fish/shared_config.fish
, 감사합니다. 당신의 대답 중 하나는 제가 피하고 싶었던 것입니다. 일부 클라우드에서 클라우드 스토리지를 사용할 수 없으며 각각의 구성을 개별적으로 동기화하지 않아도됩니다. 나는 그 자체로 설정을 가져올 물고기 설정을 원했다. 그것을 구현하지 않는 경우에, 나는 git이 cron 작업으로 끌어 당길 것이다. 대답의 두 번째 부분은 매우 유익합니다. 감사합니다! – WoJ