chatGPT 실습으로 코드를 작성하였다. vscode for ssh를 사용하면 자꾸 ~/.vscode-server 아래에 구 버전 바이너리를 계속
쌓는 문제가 발생한다. 사이즈도 꽤 커서, 잦은 업그레이드를 할 때마다 불필요한 디스크를 사용하게 된다.
따라서 아래 스크립트를 만들어 넣고, 이 스크립트를 bashrc 에서 실행하도록 하면 vscode에서 터미널을 열 때마다 확인하고
자동으로 청소를 수행해준다.
#!/bin/bash
# 마지막으로 저장된 해시코드를 기록할 파일
last_hash_file="$HOME/.vscode_server_last_hash"# VSCODE_GIT_ASKPASS_NODE 환경변수에서 현재 활성화된 해시코드 추출
if [ -z "$VSCODE_GIT_ASKPASS_NODE" ]; then
echo "VSCODE_GIT_ASKPASS_NODE is not set. Exiting script."
exit 0
ficurrent_hash=$(echo "$VSCODE_GIT_ASKPASS_NODE" | grep -oP 'vscode-server/bin/\K[a-z0-9]{40}')
# 저장된 해시코드 읽기
if [ -f "$last_hash_file" ]; then
last_hash=$(cat "$last_hash_file")
else
last_hash=""
fi# 현재 해시코드와 저장된 해시코드 비교
if [ "$current_hash" = "$last_hash" ]; then
# 해시코드가 같으면 실행하지 않고 종료
exit 0
fi# .vscode-server 디렉토리 경로 설정
vscode_dir="$HOME/.vscode-server"# 현재 활성화된 해시코드를 제외한 모든 구 버전과 관련 파일 삭제
for dir in $(ls -d "$vscode_dir"/bin/*); do
dir_hash=$(basename "$dir")
if [[ "$dir_hash" != "$current_hash" ]]; then
echo "Deleting old VS Code Server version: $dir"
rm -rf "$dir"
fi
done# 현재 활성화된 해시코드에 해당하지 않는 .log, .pid, .token 파일들 삭제
find "$vscode_dir" -maxdepth 1 -type f \( -name ".*.log" -o -name ".*.pid" -o -name ".*.token" \) | grep -v "$current_hash" | xargs -r rm -f# 현재 해시코드를 저장 파일에 기록
echo "$current_hash" > "$last_hash_file"echo "Cleanup complete."