본문 바로가기

프로그래밍/shellscript10

[SHELLSCRIPT] 쉘스크립트 리눅스 계정 패스워드 만료기한 남은일수 조회 리눅스 계정중 실제 사용중인 계정의 패스워드 만료기한과 남은 일수를 조회 할 수 있다. 고려사항 - 계정 쉘이 /bin/bash인 계정만 정보수집 - 출력 인코딩이 한글과 영어일때를 고려해야 함 - 출력결과 호스트네임,계정명1|패스워드만료기한|만료남은일수, 계정명2|패스워드만료기한|만료남은일수 #!/bin/bash list=`cat /etc/passwd | grep '/bin/bash' | awk -F ':' '{print $1}'` current_date=`date +%Y-%m-%d` hostname=`hostname -s` result="$hostname," for server in $list;do #echo "server $server" expiredate=`chage -l $server | hea.. 2023. 12. 6.
[쉘 스크립트] 리눅스 for문 Syntax error : Bad for loop variable 스크립트 문법상 문제라든지 쉘프로트에서 root 권한으로 수동으로 실행했는데도 Syntax error : Bad for loop variable 에러가 발생하는 경우가 있다. 이경우는 sh 쉘로 실행해서 발생하는 경우로 bash로 실행해줘야한다. 스크립트에 !#/bin/bash를 넣어줘야 한다 #!/bin/bash for ((cnt=1; cnt 2023. 11. 13.
[shellscript] 쉘스크립트 sed 문자 정확히 일치 할 때 바꾸기 sed 명령어를 통해 파일 내용의 문장이나 단어를 변경할 수 있다. 하지만 기본적으로 바꾸고자 하는 문자 포함이면 모두 바꾸기 때문에 바꾸고자 하는 단어가 정확히 일치할 때 변경하는 방법을 찾아야한다. 해결방법 sed -i -e '/^aaaa,bbbbb$/s/a,b/new_string/' filename.txt 예를들어 filename.txt가 아래와 같이 구성되어있을 때 aaaa,bbbb,ccc aaaa,bbbb aaaa,bbbb,ccc,dddd sed -i -e '/aaaa,bbbbb/s/a,b/new_string/' filename.txt 명령어를 수행하면 다음과 같이 출력된다 a,b,ccc a,b a,b,ccc,dddd 내가 원하는것은 두번째 라인만 변경을 원하는 것이다 따라서 첫번째와 마지막을 .. 2023. 11. 3.
[shellscript] grep -r 하위 폴더 포함 파일 내용 검색하기 개요 grep 명령어를 이용하여 현재 경로에 하위 폴더에 있는 파일 내용까지 검색할 수 있다. grep으로 찾은 문자열 바로 수정하기 grep -lr "검색어" * 현재경로 하위에 있는 모든 파일내용중 123.123.123.123을 8.8.8.8로 변경하기 grep -rl "123.123.123.123" *|xargs sed -i 's/123.123.123.123/8.8.8.8/g' 2023. 10. 24.
[shellscript] awk v옵션 문자를 찾고 같은 행 특정 열 치환하기 개요 - awk를 이용하여 수정하고자하는 열을 정확하게 찾은 뒤 수정하기 위함 - 보통 sed로 수정시 같은 단어일시 일괄 변경되는 문제점이 있음 - 유니크한 다른열의 문자열을 찾은뒤 같은행의 다른 열의 문자를 변경한다. 세부내용 serverlist가 다음과 같다. test-game01 업데이트날짜 업데이트사이즈 test-game02 업데이트날짜 업데이트사이즈 test-game03 업데이트날짜 업데이트사이즈 쉘스크립트는 다음과 같다. #!/bin/bash project=game project_dir=/data/ansible/file/svn/project/$project lists=`cat $project_dir/serverlist | awk '{print $1}'` for list in $lists;do.. 2023. 4. 18.
반응형