티스토리 뷰
맥북을 사용하고!
쉘 스크립트를 알고!
외장 그래픽을 사용하는!
전문가만 사용하길!!!
이더리움을 채굴해주는 맥용 쉘스크립트입니다~
맥북이 충전기에 연결이되고 외장그래픽을 사용하지 않는 경우!!! 채굴이 진행됩니다!
두 조건이 모두 만족하지 않으면 채굴 XXX
자동 스크립트로 그냥 터미널창 켜두면 알아서 채굴합니다!!~~~
#!/bin/bash
min_watts=60 #충전기의 최소 watts
sleep_time=5 #오버헤드를 줄이기위해 sleep_time 지정. #sleep_time의 변수는 초(seconds)를 의미
#sleep_time이가 높으면 높을 수록 어뎁터 유무를 확인을 초마다 진행하여 어뎁터 분리or연결 후 반응이 느림.
#하지만 숫자가 크다면 시스템이 시간당 별로 안하기 때문에 오버헤드가 줄어짐...
#숫자가 낮으면 오버헤드가 커지고 어뎁터 분리or연결의 반응이 빨라짐... 3~10정도가 적당할듯...
power_checking() { #파워가 연결이 되면 1을 리턴, 아니면 0을 리턴
#어뎁터 연결 유무 뿐만아니라 어뎁터의 최소 watts를 넘길시 진행,, usb-c의 여러종류의 watt 때문... 맥에 문제가될수있음.
local result=$(system_profiler SPPowerDataType | grep "Wattage (W):" | grep -Eo '[0-9]{1,9}') #현재 어뎁터의 watts를 result변수에 저장.
charger=0
if [[ $min_watts -le $result ]]; then #현재 watts가 min_watts보다 클 경우 power는 1.
charger=1
fi
}
graphic_checking() {
local result=$(active_gfx)
internal_graphic=0
if [[ "kHW_IntelHDGraphics630Item" == $result ]]; then
internal_graphic=1
fi
}
display_checking() {
#display_status가 값이 4이면 화면이 켜진거!
display_on=0
display_status=$(ioreg -n IODisplayWrangler | grep -i IOPowerManagement | perl -pe 's/^.*DevicePowerState\"=([0-9]+).*$/\1/')
if [ "$display_status" == "4" ]; then
display_on=1;
fi
}
start_mining() { #mining 시작 함수
date
echo "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" >&2
echo "Start Mining @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" >&2
echo "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" >&2
#아래의 명령어에 실행할 채굴명령어 입력하기.
# ex. ethminer를 실행한다면 아래와같이 ethminer프로그램의 위치와 옵션들(pool주소 & 사용자 계정, mining할 그래픽카드 등등.)
~/mining/ethminer/ethminer -G -P stratum+tcp://eth.pool.minergate.com:45791/eonse32@gmail.com --opencl-device 1
}
stop_mining() { #mining 종료 함수
date
echo "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" >&2
echo "Terminate Mining @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" >&2
echo "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" >&2
killall ethminer #ethminer 프로그램 종료!
}
checking_pipe_for_charger_internal() { #채굴중일때 어뎁터가 분리되었는지 확인하는 함수
while true #무한 반복
do
power_checking
graphic_checking
if [[ ( $charger == 0 || $internal_graphic == 0 ) ]]; then
stop_mining
break;
fi
sleep $sleep_time #오버헤드를 줄이기위해 5초 마다 확인함.
done
}
checking_pipe_for_charger_display() { #채굴중일때 어뎁터가 분리되었는지 확인하는 함수
while true #무한 반복
do
power_checking
display_checking
if [[ ( $charger == 0 || $display_on == 1 ) ]]; then
stop_mining
break;
fi
sleep $sleep_time #오버헤드를 줄이기위해 5초 마다 확인함.
done
}
cnt=0
while true
do
power_checking #어뎁터 연결유무확인
graphic_checking
display_checking
if [[ ( $cnt == 0 && $charger == 0 ) ]]; then #만약 어답터가 연결되지 않고, 기다리는 경우에
echo "Waiting for charger connection..." #기다리는 문구 출력...
cnt=1;
elif [[ ( $cnt == 0 && $internal_graphic == 0 ) ]]; then
echo "Charger is connected, BUT mac is using external graphic, now..." #기다리는 문구 출력...
cnt=1;
elif [[ ( $charger == 1 && $internal_graphic == 1 ) ]]; then #어뎁터가 연결되고, 내장그래픽을 사용한다면.
cnt=0
checking_pipe_for_charger_internal|start_mining #채굴진행과 연결해제여부 확인
elif [[ ( $charger == 1 && $display_on == 0 ) ]]; then #어뎁터가 연결되고, 디스플레이가 꺼진 경우
cnt=0
checking_pipe_for_charger_display|start_mining
echo "Display is ON. Terminated ethminer."
fi
#echo "charger"
#echo $charger
#echo "internal_graphic"
#echo $internal_graphic
#echo "display_on"
#echo $display_on
sleep $sleep_time
done
'알고리즘' 카테고리의 다른 글
Java Programming 2 (0) | 2018.11.22 |
---|---|
Java Programming 1 (0) | 2018.11.22 |
윈도우 아파치 2.4 WebDAV 서버 설정 (1) | 2018.11.22 |
Java coding, Boggle coding (0) | 2018.10.17 |
짝수 피보나치 수의 합 (0) | 2018.07.27 |
- Total
- Today
- Yesterday
- 산업화
- 모바일 프로그래밍
- 알고리즘
- egpu
- 카카오톡
- 이클립스
- se846
- 자바
- Vega64
- NAS
- 코드업
- 파이썬
- python
- 개발
- 맥
- 서버
- 백준
- 환경오염
- 문제
- 우분투
- Java
- 프로그래밍
- 코딩
- 슈어
- C++
- CodeUp
- 아키티오
- 외장그래픽
- 맥북
- eclipse
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |