cron 스크립트가 잘못된 데이터로 미러 목록을 손상시키는 것을 방지합니다.

cron 스크립트가 잘못된 데이터로 미러 목록을 손상시키는 것을 방지합니다.

나는 따라야 해예약 된 일들매일 실행할 스크립트입니다. 코드에서 볼 수 있듯이 결과는 에서 로 출력 reflector됩니다 /etc/pacman.d/mirrorlist.

$ cat /etc/cron.daily/update-mirrorlist
#!/bin/bash

reflector -l 5 -r -o /etc/pacman.d/mirrorlist

간혹 reflector빈 파일이 출력되어 출력이 유효하지 않은 경우가 있습니다.미러 목록건설되다.

위 스크립트를 쓰기 전용으로 수정하려면 어떻게 해야 합니까?/etc/pacman.d/mirrorlist 만약에유효한 출력이 있습니까 relfector?

답변1

먼저 데이터를 축적한 다음 제자리로 옮기는 것이 좋습니다. 이렇게 하면 데이터 누산기 프로그램이 실행 중이더라도 대상 파일이 항상 유효합니다.

set -e
target=/etc/pacman.d/mirrorlist
reflector -l 5 -r -o "$target.tmp"
mv -f -- "$target.tmp" "$target"

reflector0이 아닌 상태를 반환하여 오류가 올바르게 보고되지 않으면 명령 앞에 파일 이 비어 있지 않은지 테스트하는 mv것과 같은 고유한 유효성 검사 테스트를 추가하세요.test -s "$target.tmp"

이전 버전의 백업을 유지하려면 명령 ln -f -- "$target" "$target.old" || true앞에 이것을 추가하십시오 mv.

관련 정보