[root@rocky1 ~]# wget <https://dl.rockylinux.org/pub/rocky/8/images/x86_64/Rocky-8-GenericCloud-Base.latest.x86_64.qcow2>
[root@rocky1 ~]# ll
total 2038284
-rw-r--r-- 1 root root **2065760256** May 29 2024 Rocky-8-GenericCloud-Base.latest.x86_64.qcow2
[root@rocky1 ~]# virt-customize -a Rocky-8-GenericCloud-Base.latest.x86_64.qcow2 --root-password password:test123
[root@rocky1 ~]# mv Rocky-8-GenericCloud-Base.latest.x86_64.qcow2 Rocky-Base.qcow2
[root@rocky1 ~]# touch test1.sh ; chmod +x test1.sh
[root@rocky1 ~]# vi test1.sh
#!/bin/bash
# 가상머신 이름을 담기위한 변수
vmname=""
echo -n "가상머신 이름 : "
read vmname
# base image -> $vmname.qcow2
cp Rocky-Base.qcow2 ${vmname}.qcow2
virt-install --name $vmname --vcpus 2 --ram 2048 --disk ${vmname}.qcow2 --import --graphics none --noautoconsole
sleep 5
echo -e "\\t\\t결과화면"
echo -e "\\t생성된 인스턴스 목록"
virsh list --all
[root@rocky1 ~]# ./test1.sh
The name of VM : myinstance1
WARNING No operating system detected, VM performance may suffer. Specify an OS with --os-variant for optimal results.
Starting install...
Domain creation completed.
result screen
instance list
Id Name State
-----------------------------
1 myinstance1 running
[root@rocky1 ~]# virsh console myinstance1 또는 virsh console 5roo
localhost login: root
Password:
ping www.google.com -c 3
[root@rocky1 ~]# ssh -l root 192.168.122.146
[root@rocky1 ~]# virsh list --all
Id Name State
-----------------------------
1 myinstance1 running
[root@rocky1 ~]# virsh destroy myinstance1
Domain 'myinstance1' destroyed
[root@rocky1 ~]# virsh undefine myinstance1
Domain 'myinstance1' has been undefined
# 명령어 실행 결과를 변수에 담기
date_today=$(date) # 현재 날짜를 변수에 담음
echo $date_today # 현재 날짜 출력
# 변수에 계산식을 담기
a=5
b=3
sum=$[a + b] # a와 b를 더한 값을 sum에 저장
echo $sum # 8 출력
# 조건문 예시 1: 숫자 비교
a=5
b=10
if [ $a -eq $b ]; then
echo "a와 b는 같습니다."
else
echo "a와 b는 다릅니다." # a와 b가 다르므로 이 문장이 출력됩니다.
fi
# 조건문 예시 2: 문자 비교
vmname="Rocky"
if [ -z $vmname ]; then
echo "vmname은 비어있습니다."
else
echo "vmname 값은: $vmname" # vmname은 비어있지 않으므로 이 문장이 출력됩니다.
fi
# 조건문 예시 3: 파일 존재 여부 확인
file="test.txt"
if [ -e $file ]; then
echo "$file 파일이 존재합니다."
else
echo "$file 파일이 존재하지 않습니다."
fi
# 직전 명령어 결과 확인
mkdir /tmp/testdir # 새로운 디렉토리 생성
echo $? # 직전 명령어가 성공했으므로 0이 출력됩니다.
rm /tmp/nonexistentfile # 존재하지 않는 파일 삭제 시도
echo $? # 직전 명령어가 실패했으므로 1이 출력됩니다.
# 리스트를 반복문으로 처리
for var in a b c
do
echo $var # a, b, c가 차례대로 출력됩니다.
done
# 숫자 반복문 (1부터 10까지)
for (( i=1; i<=10; i++ ))
do
echo "The next number is $i" # 1부터 10까지 출력됩니다.
done
# 조건이 참일 때 반복문 실행
count=1
while [ $count -le 5 ]
do
echo "Count is $count" # 1부터 5까지 출력됩니다.
((count++)) # count 값을 1씩 증가시킴
done
# break를 사용하여 반복문 종료
for i in 1 2 3 4
do
if [ $i -eq 3 ]; then
break # i가 3이면 반복문 종료
fi
echo "i is $i"
done
출력:
i is 1
i is 2
# continue를 사용하여 반복문 건너뛰기
for i in 1 2 3 4
do
if [ $i -eq 3 ]; then
continue # i가 3이면 해당 반복을 건너뛰고 다음 반복으로 넘어갑니다.
fi
echo "i is $i"
done
출력:
i is 1
i is 2
i is 4
# 중첩된 반복문에서 break와 continue 사용
for i in 1 2
do
for j in 1 2
do
if [ $i -eq 2 ]; then
break # 내부 반복문 종료
fi
echo "$i $j"
done
done
출력:
1 1
1 2
sudo systemctl status nfs-server # NFS 서버 상태 확인
sudo systemctl start nfs-server # NFS 서버 시작
sudo systemctl enable nfs-server # NFS 서버 부팅 시 자동 시작 설정
[root@rocky1 ~]# sudo mount -t nfs 211.183.3.102:/shared /remote
Rocky1 = Client
Rocky2 = Server
25.03.10. #!/bin/bash 실습 (0) | 2025.03.10 |
---|---|
25.03.10. 네트워크 기초 및 실습 도구 정리: OSI 모델, 네트워크 장치, GNS3 활용 (1) | 2025.03.10 |
25.03.06. 서버 관리자를 위한 SSH 설정: 키 기반 인증과 프록시 서버 사용법 (0) | 2025.03.06 |
25.03.06. ELK stack, 파일 압축과 해제 (0) | 2025.03.06 |
25.03.05. Longest Match Rules, 로드밸런서 구성하기 (0) | 2025.03.05 |