철이 지나서 번식을 안해서 애들이 없다고
있어도 이제 막 2주 지난 애들이라 이유식 먹어서 3주 뒤에나 와보라고 하네
예전에 6월에 갔을때가 딱 번식철이었다는데
어떤 사전 정보도 없이 가서 딱 맞을 때 데려왔던 딸기가
정말 우리에게 올 인연이었는데 이렇게 놓쳤다는게 정말 다시 한번 더 마음이 아프게 한다..
철이 지나서 번식을 안해서 애들이 없다고
있어도 이제 막 2주 지난 애들이라 이유식 먹어서 3주 뒤에나 와보라고 하네
예전에 6월에 갔을때가 딱 번식철이었다는데
어떤 사전 정보도 없이 가서 딱 맞을 때 데려왔던 딸기가
정말 우리에게 올 인연이었는데 이렇게 놓쳤다는게 정말 다시 한번 더 마음이 아프게 한다..
복수개의 target에 ssh로 접속해서 동일한 명령어로 실행하는 유틸리티
| Some examples of usage follow: Run command on foo01,foo02,...,foo05 pdsh -w foo[01-05] command Run command on foo7,foo9,foo10 pdsh -w foo[7,9-10] command Run command on foo0,foo4,foo5 pdsh -w foo[0-5] -x foo[1-3] command A suffix on the hostname is also supported: Run command on foo0-eth0,foo1-eth0,foo2-eth0,foo3-eth0 pdsh -w foo[0-3]-eth0 command |
[링크 : https://linux.die.net/man/1/pdsh]
[링크 : https://qastack.kr/server/2533/linux-running-the-same-command-on-many-machines-at-once]
| linux command line에서 mp3 재생하기 (0) | 2020.12.08 |
|---|---|
| shuf (0) | 2020.12.08 |
| bash $$ 변수, 배열, 반복 (0) | 2020.12.04 |
| bash 배열 (0) | 2020.12.04 |
| find -mmin (0) | 2020.12.04 |
virtualbox에서 DHCP 사용 끄고

master node 설정에서 BOOTPROTO=none 으로 해서 static ip로 설정하도록 설정(아래 내용 참고)
[링크 : https://linuxconfig.org/rhel-8-configure-static-ip-address]
| # cat .bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/bin export PATH export CHROOT=/opt/ohpc/admin/images/centos8.2 export eth_provision=enp0s3 export num_computes=2 export c_ip=("10.0.2.4" "10.0.2.5") export c_mac=("08:00:27:4b:df:4f" "08:00:27:f9:ca:3f") export c_name=("openhpc-1" "openhpc-2") export compute_regex=openhpc-* export ntp_server=10.0.2.15 export sms_name=master export sms_ip=10.0.2.15 export sms_eth_internal=enp0s3 export internal_netmask=255.0.0.0 |
Finalizing provisioning configuration
| [sms]# wwbootstrap `uname -r` // /srv 내의 내용이 변경됨 [sms]# wwvnfs --chroot $CHROOT [sms]# echo "GATEWAYDEV=${eth_provision}" > /tmp/network.$$ [sms]# wwsh -y file import /tmp/network.$$ --name network [sms]# wwsh -y file set network --path /etc/sysconfig/network --mode=0644 --uid=0 [sms]# for ((i=0; i<$num_computes; i++)) ; do wwsh -y node new ${c_name[i]} --ipaddr=${c_ip[i]} --hwaddr=${c_mac[i]} -D ${eth_provision} done [sms]# wwsh provision set --postnetdown=1 "${compute_regex}" // 아래 항목이 실행되지 않으면 로그인 계정이 정상적으로 되지 않음 [sms]# wwsh -y provision set "${compute_regex}" --vnfs=centos8.2 --bootstrap=`uname -r` \ --files=dynamic_hosts,passwd,group,shadow,munge.key,network [sms]# systemctl restart dhcpd [sms]# wwsh pxe update |
클라이언트 노드들을 켤 준비를 해준다.

전원 on! 하니 오오오
PXE 부팅하는거 첨 보는 느낌인데?!?!? 아무튼 부팅은 성공!
하지만 root 로그인이 안되서 멀 잘못했네 멘붕중 ㅠㅠ



/ 는 tmpfs도 되어있어서 아마.. 램디스크 처럼 날아갈 것 같고
이전에 설정되었던 fstab에 의해서 붙긴한데 이제 멀 더 해야 하려나..
| # df -h Filesystem Size Used Avail Use% Mounted on tmpfs 490M 474M 16M 97% / devtmpfs 465M 0 465M 0% /dev tmpfs 490M 0 490M 0% /dev/shm tmpfs 490M 6.5M 484M 2% /run tmpfs 490M 0 490M 0% /sys/fs/cgroup 10.0.2.15:/opt/ohpc/pub 8.0G 3.7G 4.4G 46% /opt/ohpc/pub 10.0.2.15:/home 8.0G 3.7G 4.4G 46% /home tmpfs 98M 0 98M 0% /run/user/0 |
---
wwsh node new 이후에 node list로 확인
| # wwsh node list NAME GROUPS IPADDR HWADDR ================================================================================ openhpc-1 UNDEF 10.0.2.4 08:00:27:4b:df:4f openhpc-2 UNDEF 10.0.2.5 08:00:27:f9:ca:3f # wwsh bootstrap list BOOTSTRAP NAME SIZE (M) ARCH 4.18.0-193.el8.x86_64 42.6 x86_64 |
postnetdown이 멀까...
| # wwsh provision set --postnetdown=1 "${compute_regex}" Are you sure you want to make the following changes to 2 node(s): SET: POSTNETDOWN = 1 Yes/No> y |
| nagios (0) | 2020.12.07 |
|---|---|
| openHPC LBNL NHC (0) | 2020.12.07 |
| warewulf 유틸리티 (0) | 2020.12.02 |
| wwsh (warewulf shell) (0) | 2020.12.02 |
| openHPC 설치 part 1? (2) | 2020.12.02 |
| 특수 매개 변수(Special Parameters) 문자 설명 $$ 현재 스크립트의 PID $? 최근에 실행된 명령어, 함수, 스크립트 자식의 종료 상태 $! 최근에 실행한 백그라운드(비동기) 명령의 PID $- 현재 옵션 플래그 $_ 지난 명령의 마지막 인자로 설정된 특수 변수 |
[링크 : https://blog.gaerae.com/2015/01/bash-hello-world.html]
배열
배열은 콤마가 아니라 공백으로 내용이 구분되어야 한다. 콤마를 넣으면 하나의 값이 들어있는 배열로 인식한다. 주의!!
배열명= ("내용1" "내용2")
[링크 : http://blog.redjini.com/282]
for 루프
변수의 제어문에서 존재하지 않는 변수를 사용할 경우 0으로 인식되는게 아니라 에러가 발생하니 주의!!
| shuf (0) | 2020.12.08 |
|---|---|
| pdsh (0) | 2020.12.04 |
| bash 배열 (0) | 2020.12.04 |
| find -mmin (0) | 2020.12.04 |
| linux 스토리지 정보 (0) | 2020.10.14 |
변수명=("내용", "내용", ...)
으로 선언하는데 접근은
${변수명[index]} 로 해야 한다.
| # 빈 배열 EMPTY_LIST=() PLANETS=( "EARTH" "MARS" "VINUS" ) # ${PLANETS[0]} == "EARTH" # ${PLANETS[1]} == "MARS" # ${PLANETS[2]} == "VINUS" PLACES[0]="HERE" PLACES[1]="THERE" PLACES[2]="WHERE" NAMES=() NAMES+=("ME") # ${NAMES[0]} == "ME" NAMES+=("YOU") # ${NAMES[1]} == "YOU" NAMES+=("THEM") # ${NAMES[2]} == "THEM" |
[링크 : https://blog.leocat.kr/notes/2018/02/18/shell-declare-list]
| pdsh (0) | 2020.12.04 |
|---|---|
| bash $$ 변수, 배열, 반복 (0) | 2020.12.04 |
| find -mmin (0) | 2020.12.04 |
| linux 스토리지 정보 (0) | 2020.10.14 |
| linux page cache (0) | 2020.01.13 |
| bash $$ 변수, 배열, 반복 (0) | 2020.12.04 |
|---|---|
| bash 배열 (0) | 2020.12.04 |
| linux 스토리지 정보 (0) | 2020.10.14 |
| linux page cache (0) | 2020.01.13 |
| dmesg 시간 환산하기 (0) | 2020.01.07 |
byte[]를 string으로 바꾸어주는 함수들이 여러개가 있는데 자주 보이는 건 아래의 두개가 아닐까 생각된다.
하지만 둘 다 위험한 함수(?) 란 건 변하지 않는다.. ㅠㅠ
System.Text.Encoding.UTF8.GetString()
[링크 : https://docs.microsoft.com/ko-kr/dotnet/api/system.text.encoding.utf8?view=net-5.0]
System.Text.Encoding.ASCII.GetString()
| ASCIIEncoding 는 오류 검색을 제공 하지 않습니다. 16 진수 0x7F 보다 큰 바이트는 유니코드 물음표 ("?")로 디코딩됩니다. |
[링크 : https://docs.microsoft.com/ko-kr/dotnet/api/system.text.asciiencoding.getstring?view=net-5.0]
그러니까 char[]/byte[]를 함수들이 string으로 받는다고 변환해서 보내주면 개판을 친다는 의미
하다하다 안되서 혹시나 이상하게 보내오나 wireshark로 패킷을 보니 정상 -_-

아래 코드에 의해 byte[]를 string으로 변환하고 console 창으로 출력한 결과
ff d8 ff e0 00 10 4a 46 49 46 으로 시작하는 JPEG 헤더가
3f 3f 3f 3f 00 10 4a 46 49 46 으로 바뀌어 버렸다.
responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes);
Console.WriteLine("Received: {0}", responseData);

그러니까.. 바이너리 데이터는 꾿꾿이 byte[]로 주고 받아야 할 듯.. ㅠㅠ
| c# richtextbox 글씨 색상 입히기 (0) | 2021.05.24 |
|---|---|
| c# named argument (0) | 2021.01.06 |
| c# vertical tab (0) | 2020.11.26 |
| c# rest API client (0) | 2020.11.25 |
| c# telnet, ssh client (0) | 2020.11.24 |
공장에서 잘못보내서 다시 보내주고 반송 처리 하겠다고
흐음.. 미안하다는 말이 있었나 없었나?
아무튼 예상했던것 보다 하루 늦게 도착했고
이상하게 도착하고
여전히 전화는 드럽게 안 받아서 본사전화해서 재촉해야 좀 오고
이상한 곳이야..
4k60p 안되는게 팩토리 모드 문제인가 싶어서 리모컨 없이 쓰려니 좀 힘들기도 하고
그냥 속 터져서 거금 만원에 배송비 들여서 일단 구매진행
모넥스, 카레나, 클라인즈, 아인츠, 시네eye, 모지, 제파, 디존아이
DLT 한곳에서 제조하고 8곳 업체로 동일하게 판매하는 듯하다.
[링크 : http://itempage3.auction.co.kr/DetailView.aspx?ItemNo=B645357255&frm3=V2]
| 55인치 vs 43인치 (0) | 2020.12.12 |
|---|---|
| UHD 색상도 이상하고 화면도 선명하지 않아서.. (0) | 2020.12.07 |
| 무선 디스플레이 사용해봄 (0) | 2020.12.02 |
| UHD HDMI 케이블 문제? 아니면.. 리모컨 없는 죄? (0) | 2020.12.01 |
| 43인치 UHD 구매 (0) | 2020.11.30 |
warewulf 답게 ww로 프로그램 이름이 시작한다.
| # ww wwbootstrap wwinit wwmkchroot wwsh wwvnfs wwconfig wwlivesync wwnodescan wwuseradd |
초기화 명령으로 database랑 ssh_keys는 했는데 의외로 초기화 하는 항목이 많다?
| # wwinit --help /usr/bin/wwinit: illegal option -- - /usr/bin/wwinit [options] [initialization(s)] OPTIONS: -d Debug output -v Verbose output -h Usage summary INITIALIZATIONS: * ALL * AUTH * BOOTSTRAP * DATABASE * DATASTORE * MASTER * NFS * PROVISION * TESTING * TIME * VNFS * authfiles * bootstrap * chrony * database * dhcp * domain * hostfile * network * nfsd * ntp * ssh_keys * tftp * vnfs * wwsh EXAMPLES: # wwinit ALL # wwinit TEST database |
자동으로 새로운 컴퓨터 노드를 등록해주는 유틸리티
wwsh node를 통해서도 추가가 가능하다.
# wwnodescan
USAGE: /usr/bin/wwnodescan [options] nodes....
SUMMARY:
Scan for new systems making DHCP requests.
GENERAL OPTIONS:
-h, --help Show the help/utilization summary
-d, --debug Display debugging information
-v, --verbose Be more verbose in output
-f, --file <file> Create Warewulf script instead of auto-import
-l, --listen <iface> Interface to listen on (tcpdump -D for list)
-c, --tcpdump <cmd> Specify the full path to the tcpdump command
-T, --tshark <cmd> Specify the full path to the tshark command (Only IB Mode)
-x, --max [<cnt>] Exit after <cnt> new nodes (0 for auto)
MODES:
-t, --test Test mode; do not modify data store
-r, --replace Replace existing nodes (by name)
-a, --autoconfig Assign HW addresses to unassigned nodes
-I, --infiniband Use tshark to look for Client Identifier, compatible with Mellanox FlexBoot.
SETTINGS:
-n, --netdev <dev> Network device for the new node(s)
-i, --ipaddr <addr> IP address for the new node(s)
-m, --netmask <mask> Netmask for the new node(s)
-V, --vnfs <vnfs> VNFS for the node(s)
-b, --bootstrap <name> Bootstrap for the node(s)
-g, --groups <groups> Groups for the node(s)
NODES:
You can scan for any number of nodes; this program will exit after all
specified nodes have been found. The IP address provided will be
incremented for each node found, and nodes will be added in the order
given on the command line.
DEFAULTS:
As with all object types, you can create a template node object called
DEFAULT whose attributes will be used as the default values for all
new nodes. You can override some of these defaults using the options
shown above.
EXAMPLES:
# wwnodescan --ipaddr 10.0.1.10 --netmask 255.255.0.0 --vnfs=sl6.vnfs
--bootstrap=`uname -r` n0000 n0001
# wwsh node new DEFAULT --groups=grp1,test
# wwsh provision node DEFAULT --vnfs=sl6.vnfs --bootstrap=`uname -r`
# wwnodescan --ipaddr 10.0.1.100 --netmask 255.255.0.0 n00[02-19]
VNFS 이미지를 만들때 시작 지점과 배포판을 지정할때 사용
| # wwmkchroot ERROR: Missing VNFS template name /usr/bin/wwmkchroot [options] TEMPLATE_NAME PATH OPTIONS: -d Debug output -g Disable install GPG checks -v Verbose output -h Show usage TEMPLATE_NAME (select one of the following): * centos-6 A clone of Red Hat Enterprise Linux 6 * centos-7 A clone of Red Hat Enterprise Linux 7 * centos-8 Red Hat Enterprise Linux 8 * debian7-32 A base 32 bit Debian wheezy chroot * debian7-64 A base 64 bit Debian wheezy chroot * debian-8 A base 64 bit Debian jessie chroot * golden-system Build a local chroot from a golden system * opensuse-15.1 OpenSUSE LEAP 15.1 * opensuse-15.2 OpenSUSE LEAP 15.2 * opensuse-42.3 OpenSUSE LEAP 42.3 * opensuse-tumbleweed OpenSUSE Tumbleweed Rolling Release * sl-7 Scientific Linux 7 * sles-12 SUSE Linux Enterprise Server 12 * sles-15 SUSE Linux Enterprise Server 15 Update 1 * ubuntu-16.04 A base 64 bit Ubuntu xenial chroot * ubuntu-18.04 A base 64-bit Ubuntu cosmic chroot PATH: This is the location where the VNFS will be created EXAMPLES: # wwmkchroot rhel-generic /var/chroots/rhel # wwmkchroot debian8-64 /var/chroots/deb8 |
wwmkvnfs 로 만든 디렉토리를 VNFS 이미지로 생성하는 유틸리티
# wwvnfs
_FORTIFY_SOURCE requires compiling with optimization (-O) at /usr/lib64/perl5/features.ph line 207.
USAGE: /usr/bin/wwvnfs [options] (name)
OPTIONS:
-c, --chroot Path to the chroot to use for this VNFS image
-r, --root Alias for --chroot
-h, --help Usage and help summary
-o, --output Output the binary VNFS to a file instead of importing it
directly into Warewulf
-e, --exclude Exclude a file or directory from the VNFS image
--excludefile Path to a file that contains a list of files and directories to
exclude from the VNFS image
--hybridize Hybridize a list of files or directories from the VNFS image
(requires --hybridpath to be set, or files are just excluded)
--hybridizefile Path to a file that contains a list of files and directories to
be hybridized from the VNFS image
--hybridpath Path to use within the VNFS where the links will be pointed to in
the final image (this needs to be added to the VNFS fstab!)
NOTES:
When wwvnfs is run for the first time on a VNFS, it will attempt to create a
configuration file in the default warewulf config dir (/etc/warewulf/vnfs/) or in
the users ~/.warewulf/vnfs directory. Once the configuration file has been written
and updated, you can simply run 'wwvnfs [vnfs_name]' to rebuild the image. You can
temporarily override any of these options via command line arguments.
EXAMPLES:
# wwvnfs --chroot=/var/chroots/rhel-6
# wwvnfs custom_name --chroot=/var/chroots/rhel-6 --hybridpath=/hybrid/vnfs_name
# wwvnfs --chroot=/var/chroots/rhel-6 --output=rhel-6.vnfs
# wwvnfs custom_name
openHPC 문서 상에는 없는 녀석들. 정체가 머냐?
| # wwconfig USAGE: /usr/bin/wwconfig [options] [paramaters] Options: -h, --help Show this help summary -a, --all Print all evnironment variables -s, --sh Print output in Bourne shell format -e, --exp Also print out export lines. For use with Bourne shell format. -c, --csh Print output in C shell format Paramaters: PROGNAME Program name VERSION Program version GITVERSION Git repository commit PREFIX The compile-time prefix DATAROOTDIR The compile-time data root directory DATADIR The compile-time data directory LIBDIR The compile-time lib directory LIBEXECDIR The compile-time libexec directory PERLMODDIR The compile-time Perl module directory STATEDIR The compile-time local state directory SYSCONFDIR The compile-time system configuration directory |
| # wwlivesync USAGE: /usr/bin/wwlivesync (options) [targets] SUMMARY: The live sync command will spawn rsync commands to update the running node operating system (VNFS) live. This command should only be used for minor VNFS updates, as large updates including library load could potentially break binary compatibility. OPTIONS: -l, --lookup Identify nodes by specified property (default: "name") -f, --files Pass a list of files to sync instead of the entire VNFS --show Just print what it would do instead of actually do it --logdir Directory of per-node logs (/var/log/wwlivesync) --verbose Increase verbosity level --quiet Decrease verbosity level --debug Print debugging messages -h, --help Display this usage summary TARGETS: The target(s) specify which node(s) will be affected by the chosen action(s). By default, node(s) will be identified by their name(s). Use the --lookup option to specify another property (e.g., "hwaddr" or "groups"). All targets can be bracket expanded as follows: n00[0-99] All nodes from n0000 through n0099 (inclusive) n00[00,10-99] n0000 and all nodes from n0010 through n0099 EXAMPLES: # wwlivesync n00[00-19] |
# wwuseradd
Adding user to this master
Usage: useradd [options] LOGIN
useradd -D
useradd -D [options]
Options:
-b, --base-dir BASE_DIR base directory for the home directory of the
new account
-c, --comment COMMENT GECOS field of the new account
-d, --home-dir HOME_DIR home directory of the new account
-D, --defaults print or change default useradd configuration
-e, --expiredate EXPIRE_DATE expiration date of the new account
-f, --inactive INACTIVE password inactivity period of the new account
-g, --gid GROUP name or ID of the primary group of the new
account
-G, --groups GROUPS list of supplementary groups of the new
account
-h, --help display this help message and exit
-k, --skel SKEL_DIR use this alternative skeleton directory
-K, --key KEY=VALUE override /etc/login.defs defaults
-l, --no-log-init do not add the user to the lastlog and
faillog databases
-m, --create-home create the user's home directory
-M, --no-create-home do not create the user's home directory
-N, --no-user-group do not create a group with the same name as
the user
-o, --non-unique allow to create users with duplicate
(non-unique) UID
-p, --password PASSWORD encrypted password of the new account
-r, --system create a system account
-R, --root CHROOT_DIR directory to chroot into
-P, --prefix PREFIX_DIR prefix directory where are located the /etc/* files
-s, --shell SHELL login shell of the new account
-u, --uid UID user ID of the new account
-U, --user-group create a group with the same name as the user
-Z, --selinux-user SEUSER use a specific SEUSER for the SELinux user mapping| openHPC LBNL NHC (0) | 2020.12.07 |
|---|---|
| openHPC 설치 part2? (0) | 2020.12.04 |
| wwsh (warewulf shell) (0) | 2020.12.02 |
| openHPC 설치 part 1? (2) | 2020.12.02 |
| ipmi simulator (0) | 2020.12.02 |