flock

클러스터를 사용하면 기다리지 않고 즉시 종료됩니다.
flock

클러스터를 사용하면 기다리지 않고 즉시 종료됩니다.

-n나는 오랫동안 국기의 의미에 대해 혼란스러워했다 flock(1). 기본적으로 이 도구에 대한 많은 가이드가 있는데, 우리가 자주 보는 것은 다음과 같습니다 flock -n 100. 여기에서 fd 번호 100은 특정 잠금 파일과 연결되어 잠금을 수행하는 데 사용됩니다. 몇 가지 간단한 테스트를 수행하면 flock즉시 실패하고 종료되기 때문에 오늘 혼란스러웠습니다. -n플래그는 정확히 무엇을 하는가 flock? -n 100파일 설명자 번호 100을 잠긴 파일과 연결하는 것이 맞습니까 ? ...

Admin

패싸움에서 닭이 먼저냐 달걀이 먼저냐는 이상한 질문
flock

패싸움에서 닭이 먼저냐 달걀이 먼저냐는 이상한 질문

이 bash 명령의 여러 단계는 어떤 순서로 완료됩니까? (flock -n 9) 9> toto.txt 서브쉘 부분만 수행하는 경우: (flock -n 9) 나는 다음과 같은 결과를 얻었습니다: ( flock: 9: Mauvais descripteur de fichier잘못된 파일 설명자). 따라서 서브쉘이 먼저 (...) 9> toto.txt. 하지만 이렇게 하면: (ls -l /proc/$$/fd) 9> toto.txt total 0 lrwx------ 1 laurent la...

Admin

Ubuntu 22.04에서 고정 비트의 영향을 받지 않는 Ubuntu 사용자
flock

Ubuntu 22.04에서 고정 비트의 영향을 받지 않는 Ubuntu 사용자

/tmp 디렉터리와 클러스터 명령의 지속 비트에서 이상한 동작이 발생합니다. 두 가지 시나리오를 시도했습니다. 상황 1: Ubuntu 사용자를 사용하여 파일을 생성합니다. 루트에는 생성된 파일에 액세스할 수 있는 권한이 없습니다. ubuntu@:~$ touch -a /tmp/ubuntu_user_created.lck ubuntu@:~$ flock -n /tmp/ubuntu_user_created.lck -c "echo 123" 123 ubuntu@:~$ sudo flock -n /tmp/ubuntu_...

Admin

서로 호출할 수 있는 스크립트에 대한 공유 잠금
flock

서로 호출할 수 있는 스크립트에 대한 공유 잠금

이는 특이한 문제이며 잘못된 설계로 인해 발생할 수 있습니다. 누구든지 더 나은 제안이 있으면 듣고 싶습니다. 하지만 이제는 "있는 그대로" 해결하고 싶습니다. 대화형 스크립트가 많이 있습니다. 질문의 목적에는 중요하지 않습니다. 완전성을 위해 이러한 스크립트는 Oracle 데이터베이스 대기 노드를 물리적 대기와 스냅샷 대기 간에 전환하고, 스냅샷 데이터베이스를 생성하고 보고 팀을 위한 일부 할당을 추가하고 오래된 보관 로그를 해제합니다. 과정 . 가지다: delete_archivelogs.sh s...

Admin

테스트 파일 잠금
flock

테스트 파일 잠금

파일에 대한 동시 액세스를 피하기 위해 파일을 잠그는 스크립트가 있습니다. 두 개의 다른 터미널에서 동일한 스크립트를 동기식으로 실행하여 작동하는지 확인하려면 어떻게 해야 합니까? 이게 스크립트야 #!/bin/bash ( flock -xn 200 trap 'rm /tmp/test_lock.txt' 0 RETVAL=$? if [ $RETVAL -eq 1 ] then echo $RETVAL echo "file already removed" exit 1 els...

Admin

Windows의 WaitForMultipleObjects와 같은 더 높은 수준의 기능을 Linux에 추가할 계획이 있습니까?
flock

Windows의 WaitForMultipleObjects와 같은 더 높은 수준의 기능을 Linux에 추가할 계획이 있습니까?

WaitForMultipleObjects는 호출 스레드를 일시 중단하고 리소스 등을 사용할 수 있을 때까지 다른 스레드와 동기화할 수 있는 여러 Windows 커널 함수 중 하나입니다. Linux의 클러스터링과 유사하지만 파일 잠금을 제외한 모든 것을 처리합니다. WaitForMultipleObjects는 다양한 이벤트(변경 알림, 콘솔 입력, 이벤트, 메모리 알림, 뮤텍스, 프로세스, 세마포어, 스레드 및 타이머가 혼합될 수 있음), 시간 초과 또는 폴링 옵션, AND/OR 옵션 및 보고를 먼저 지...

Admin

공유 원격 리소스에 대한 액세스 동기화
flock

공유 원격 리소스에 대한 액세스 동기화

여러 클라이언트가 읽고 쓰는 원격 서버에 공유 캐시가 있으므로 이 캐시에 대한 액세스를 동기화해야 합니다. 내 생각에 난 할 수있어: 원격으로 SSH를 통해 서버에 클러스터를 가져옵니다. 서버에 업데이트 푸시(rsync) 무리를 풀어주다 Flock 자체는 작동하지만 모든 것이 작동하려면 클라이언트에서 캐시를 업데이트하는 동안 잠금을 획득하고 보유할 수 있는 프로세스를 원격으로 시작하는 방법이 필요합니다. 그런 다음 클라이언트와의 연결이 끊어지면 3에서 클라이언트에서 클러스터를 해제해야 합니다. 이...

Admin

lockf 명령을 사용하여 eval을 실행하는 방법은 무엇입니까?
flock

lockf 명령을 사용하여 eval을 실행하는 방법은 무엇입니까?

eval아래와 같이 실행 명령이 있습니다 . #! /bin/sh readonly scr="MYENV=1 sh /tmp/scr.sh" eval ${scr} -a 1 -b 2 scr이제 유틸리티를 사용하여 스크립트를 실행 하고 싶기 lockf때문에 다음과 같이 변경했습니다. #! /bin/sh readonly scr="MYENV=1 sh /tmp/scr.sh" lockf -k /tmp/f.lock eval ${scr} -a 1 -b 2 다음과 같은 오류가 발생합니다. lockf: eval: N...

Admin

if-else를 사용한 클러스터링이 안전한가요?
flock

if-else를 사용한 클러스터링이 안전한가요?

병렬로 실행되는 두 개의 쉘 스크립트가 있지만 한 번에 하나씩도 있습니다. 두 스크립트 모두 초기 설정 단계를 사용하므로 시간이 걸리고 동시에 실행할 수 없습니다. 나머지의 병렬 실행을 허용하기 위해 다음을 사용하여 제어 흐름에서 설정 단계를 래핑합니다.flock기반으로이 제안. 이것~인 것 같다잘 작동하지만 if-else 구문이 완전히 안전한지는 잘 모르겠습니다. 여기에 제가 놓친 숨겨진 문제가 있나요? set -euxo pipefail ( # Only run setup if we're th...

Admin

Linux에서 오래된 파일 잠금 처리 및 클러스터의 강력한 사용
flock

Linux에서 오래된 파일 잠금 처리 및 클러스터의 강력한 사용

cron을 통해 주기적으로(몇 분마다) 실행되는 스크립트가 있습니다. 그러나 스크립트는 여러 번 병렬로 실행되지 않으며 때로는 약간 더 오래 걸리므로 일부 잠금을 구현하고 싶습니다. 즉, 이전 인스턴스가 이미 실행 중인 경우 스크립트가 일찍 종료되는지 확인하십시오. 다양한 제안을 바탕으로 다음과 같은 자물쇠가 생겼습니다. lock="/run/$(basename "$0").lock" exec {fd}<>"$lock" flock -n $fd || exit 1 스크립트의 다른 인스턴스가 아직 ...

Admin

rsync 스크립트는 CentOS 7에서 작동하지만 동일한 스크립트는 RHEL 7에서 작동하지 않습니다.
flock

rsync 스크립트는 CentOS 7에서 작동하지만 동일한 스크립트는 RHEL 7에서 작동하지 않습니다.

CentOS7에 3개의 노드가 있고 RHEL7에 1개의 노드가 있는 가상 머신 클러스터가 있습니다. crontab에는 rsync가 활성화된 디렉터리가 있으며 /mnt/<server_IP>/portal/wso2telcohub-3.0.2/repository/deployment/server/synapse-configs/default/api/ 설정은 다음과 같습니다. $ incrontab -l /mnt/<server_IP>/portal/wso2telcohub-3.0.2/reposito...

Admin

클러스터 잠금 파일만 보면 프로세스에서 명령이 실행되고 있는지 알 수 있나요?
flock

클러스터 잠금 파일만 보면 프로세스에서 명령이 실행되고 있는지 알 수 있나요?

예유틸리티 리눅스flockflock()Linux C API를 기반으로 구현되었나요? 잠금 파일만 보면 프로세스에서 명령이 실행되고 있는지 알 수 있나요? 데몬화된 명령 flock실행이 완료되면 잠금 파일이 변경되지 않는 것 같습니다. 실행 중과 완료 후의 모습은 다음과 같습니다. $ ls -l ../sleep.flock.file -rw-rw-r-- 1 t t 0 Oct 30 14:01 ../sleep.flock.file $ ls -l ../sleep.flock.file -rw-rw-r-- 1 ...

Admin