강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

간단한 스크립트 만들기

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

간단한 스크립트 만들기


아주 기본적이고 쉬운 내용이지만 모르면 생고생 할수 있는 스크립트입니다.
어느 파일에서 리스트를 받아와서 결과값을 전달하는 스크립트인데 일괄작업시에 유용합니다.


#!/bin/bash

lists=`cat 읽어들일 데이터 목록`

for USER in $lists ; do

done

위 스크립트가 기본 뼈대 입니다.

여기서

for USER in $lists ; do

<여기>

done

<여기> 부분에 사용하고 싶은 스크립트를 삽입 하시면 됩니다.

가령 사용자계정 2000개를 만들어야 한다고 해봅시다. 실제로 이렇게 만들일이 많지는 않지만 안하지도 않습니다.
1개씩 수작업으로 해야한다면 정말 힘들 것입니다.

읽어들일 데이터 목록명은 userlist 라고 해봅시다.

그리고 그 파일안에는

유저명:패스워드
유저명:패스워드
...

식으로 파일이 저장되어 있다고 해봅시다.
그러면 구분자를 : 로해서 유저명과 패스워드를 인식시키는 작업이 필요할 것입니다.

lists=`cat userlist` 이렇게 될 것이고, 내용에는

username=`grep $USER "userlist" | awk -F: '{print $1}'`
password=`grep $USER "userlist" | awk -F: '{print $2}'`


이 내용이 필요하겠죠?

이제 유저명과 패스워드를 인식 시켰으니 생성을 할 차례입니다.

useradd $username
echo $password | passwd --stdin $username 1>&-


이렇게 하면 기본적인 계정 생성은 되겠죠?

위 내용을 토대로 가장 기본적인 계정생성 스크립트는

#!/bin/bash

lists=`cat userlist`

for USER in $lists ; do

username=`grep $USER "userlist" | awk -F: '{print $1}'`
password=`grep $USER "userlist" | awk -F: '{print $2}'`

useradd $username
echo $password | passwd --stdin $username 1>&-

done

이렇게 될 것입니다. 다시 한번 말씀드리지만 userlist는 사용자정보가 들어있는 파일입니다.

이보다 앞서 사용자정보가 들어있는 파일을 만들어야하는데 사용자계정들은 특정한 패턴을 가지고 있다면?

예를들어 모든 계정의 패스워드가 계정명 뒤에 ^^* 를 붙이는 것이라면?

a:a^^*
b:b^^*
c:c^^*
...

이런 식으로 만들어야 한다면?

사용자정보들은 미리 파일로 저장되어 있어야만 합니다. 그리고 위의 기본 뼈대를 다시 가져 옵니다.

#!/bin/bash

lists=`cat 읽어들일 데이터 목록`

for USER in $lists ; do

done

사용자정보가 들어있는 파일은

a
b
c
...

이렇게 만듭니다.

그리고 그 파일(예:userlist_orig)을 이용해 새로운 파일을 만드는 겁니다.

echo $USER:$USER"^^*" >> userlist

이 문구를 추가시켜줍니다.

#!/bin/bash

lists=`cat userlist_orig`

for USER in $lists ; do

echo $USER:$USER"^^*" >> userlist

done

이렇게 하면 기본적인 사용자정보를 담은 파일이 완성되는 것입니다.

쉬운 내용이지만 모르면 고생할 수 있는..간단한 스크립트였습니다.

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,035 명
  • 현재 강좌수 :  35,798 개
  • 현재 접속자 :  158 명