git.iko.soy/xmrig-bash-scripts
on master help sign in
.gitignore+1
since splitsnapshots
unifiedsplit
@@ -1,6 +1,7 @@
1xmrig-cpu/
1xmrig-cpu/
2*.swp
2*.swp
3crontab
3crontab
4+null
4config.json
5config.json
5myconfig.json
6myconfig.json
6mysettings.sh
7mysettings.sh
README.md+18−17
@@ -11,6 +11,7 @@ A set of convenience scripts, written in bash, to help manage installation, conf
11There is allot to install so the install script will do most of the heavy lifting.
11There is allot to install so the install script will do most of the heavy lifting.
12At the start the expectation is that you have:
12At the start the expectation is that you have:
13* Computer running Ubuntu 18.04 (LTS)
13* Computer running Ubuntu 18.04 (LTS)
14+* Bash shell
14* User account with sudo privileges
15* User account with sudo privileges
15* Installed git
16* Installed git
16* Optionally installed [xmrig-proxy](https://github.com/xmrig/xmrig-proxy)
17* Optionally installed [xmrig-proxy](https://github.com/xmrig/xmrig-proxy)
@@ -21,38 +22,37 @@ Some knowledge of:
21* Linux Command Line Interface
22* Linux Command Line Interface
22* Linux shell `bash`
23* Linux shell `bash`
23
24
24−There is more to install but the install script will install the rest.
25−
26### Installation
25### Installation
27
26
281. Change to your user home directory.
271. Change to your user home directory.
29 `cd ~`
28 `cd ~`
30−
31−2. Install git.
29+1. Install git.
32 `sudo apt install git`
30 `sudo apt install git`
33−
34−3. Clone this project.
31+1. Clone this project.
35 `git clone https://github.com/seanwhe/xmrig-bash-scripts`
32 `git clone https://github.com/seanwhe/xmrig-bash-scripts`
36−
37−4. Change into the cloned directory.
33+1. Change into the cloned directory.
38 `cd xmrig-bash-scripts`
34 `cd xmrig-bash-scripts`
39−
40−5. Edit the settings file to your preference.
41− `vim settings.sh`
42−
43−6. Run the install script
35+1. Run the install script
44 `./install.sh`
36 `./install.sh`
45−
37+1. When prompted: "Enter your own settings?" enter 'y'es.
38+1. Enter values for your:
39+ 1. Pool server URL
40+ 1. Pool server TCP port
41+ 1. Receive wallet address
42+ 1. Email address
43+ 1. Miner identifier name
46−7. After install is complete. Attach to the screen session created during the installation.
44+1. After install is complete. Attach to the screen session created during the installation.
47 `screen -r`
45 `screen -r`
48
46
49### Operation
47### Operation
50
48
51Defaults - The settings.sh contains a number of variables. With the exception of the 'xmrig' binary, which is installed to `/usr/bin/xmrig`, all files remain in the cloned project directory `~/xmrig-bash-scripts`. Any files generated while running the scripts are also created in this directory.
49Defaults - The settings.sh contains a number of variables. With the exception of the 'xmrig' binary, which is installed to `/usr/bin/xmrig`, all files remain in the cloned project directory `~/xmrig-bash-scripts`. Any files generated while running the scripts are also created in this directory.
52
50
53−During install the folder source for [xmrig cpu](https://github.com/xmrig/xmrig) is cloned to `~/xmrig-bash-scripts/xmrig-cpu/`. The `config.json` is also created in this path.
51+During install the folder source for [xmrig cpu](https://github.com/xmrig/xmrig) is cloned to `~/xmrig-bash-scripts/xmrig-cpu/`. The file `config.json`, used to configure xmrig, is also created in this path and is passed to xmrig at startup.
52+
53+During installation it is recomended to enter your own settings. This creates a file named 'mysettings.sh' which will not be overwritten during future installs or upgrades. Values for variables found in 'mysettings.sh' are used to create 'config.json'.
54
54
55−This should work out the box, if you edit only the top section of `settings.sh` and followed the steps here.
55+This should work out the box, if you follow the installation steps and enter your own values for 'mysettings.sh.
56
56
57Once you have a running xmrig then you can start playing around and tweaking to suite requirements.
57Once you have a running xmrig then you can start playing around and tweaking to suite requirements.
58
58
@@ -67,6 +67,7 @@ The scripts are designed to be modular to promote resuse, execute exclusion and
67* crontab-on.sh - redefines the users crontab as created during install.
67* crontab-on.sh - redefines the users crontab as created during install.
68* depends.sh - installs dependancies required by xmrig and these scripts.
68* depends.sh - installs dependancies required by xmrig and these scripts.
69* functions.sh - a collection of functions used in various of the scripts.
69* functions.sh - a collection of functions used in various of the scripts.
70+* input.sh - prompts to enter values for creating 'mysettings.sh'
70* install.sh - the main entry point when first installing.
71* install.sh - the main entry point when first installing.
71* maintenance.sh - performs apt update, upgrade, autoremove and autoclean operations.
72* maintenance.sh - performs apt update, upgrade, autoremove and autoclean operations.
72* settings.sh - contains variables used by these scripts.
73* settings.sh - contains variables used by these scripts.
build.sh+3−1
@@ -1,5 +1,7 @@
1#!/bin/bash
1#!/bin/bash
2
2
3+echo "${_GREEN}BUILD STARTED${_RESET}"
4+
3# Clone source
5# Clone source
4if [ -d "$_XMRIG_CLONE_LOCATION" ]; then
6if [ -d "$_XMRIG_CLONE_LOCATION" ]; then
5
7
@@ -45,5 +47,5 @@ sudo cp $_XMRIG_BUILD_LOCATION/xmrig $_XMRIG_TARGET_LOCATION
45
47
46cd $_WORK_DIR
48cd $_WORK_DIR
47
49
48−echo "${_GREEN}BUILD COMPLETE${_RESET}"
50+echo "${_CYAN}BUILD STOPPED${_RESET}"
49
51
config.sh+3−1
@@ -1,6 +1,8 @@
1#!/bin/bash
1#!/bin/bash
2
2
3+echo "${_GREEN}CONFIG STARTED${_RESET}"
4+
3echo "$_CONFIG_JSON" | tee config.json
5echo "$_CONFIG_JSON" | tee config.json
4
6
5−echo "${_GREEN}CONFIG CREATED${_RESET}"
7+echo "${_CYAN}CONFIG STOPPED${_RESET}"
6
8
crontab-off.sh+3−1
@@ -1,5 +1,7 @@
1#!/bin/bash
1#!/bin/bash
2
2
3+echo "${_GREEN}DISABLE CRONTAB STARTED${_RESET}"
4+
3# Removes a user crontab
5# Removes a user crontab
4# Used in conjunction with crontab-on.sh to toggle user crontab between states:
6# Used in conjunction with crontab-on.sh to toggle user crontab between states:
5# on - start/stop xmrig at specified times
7# on - start/stop xmrig at specified times
@@ -12,5 +14,5 @@ crontab -l > crontab
12echo "Removing exiting crontab"
14echo "Removing exiting crontab"
13crontab -r
15crontab -r
14
16
15−echo "${_GREEN}CRONTAB DISABLED${_RESET}"
17+echo "${_CYAN}DISABLE CRONTAB STOPPED${_RESET}"
16
18
crontab-on.sh+3−1
@@ -1,5 +1,7 @@
1#!/bin/bash
1#!/bin/bash
2
2
3+echo "${_GREEN}ENABLE CRONTAB STARTED${_RESET}"
4+
3# Defines a user crontab with schedules as defined in settings.sh
5# Defines a user crontab with schedules as defined in settings.sh
4# Used in conjunction with crontab-off.sh to toggle user crontab between states:
6# Used in conjunction with crontab-off.sh to toggle user crontab between states:
5# on - start/stop xmrig at specified times
7# on - start/stop xmrig at specified times
@@ -14,5 +16,5 @@ sleep 5
14. crontab.sh
16. crontab.sh
15sleep 5
17sleep 5
16
18
17−echo "${_GREEN}CRONTAB ENABLED${_RESET}"
19+echo "${_CYAN}ENABLE CRONTAB STOPPED${_RESET}"
18
20
crontab.sh+5−2
@@ -1,5 +1,8 @@
1#!/bin/bash
1#!/bin/bash
2
2
3+
4+echo "${_GREEN}CRONTAB STARTED${_RESET}"
5+
3# Set values in settings script
6# Set values in settings script
4
7
5# Remove existing crontab
8# Remove existing crontab
@@ -9,11 +12,11 @@ crontab -r
9
12
10# Setup users contab
13# Setup users contab
11
14
12−crontab -l | { cat; echo "#Start at $_USER_TIMESTART on days $_USER_CRONDAYS
15+crontab -l | { cat; echo "#Start at $_USER_CRONSTART on days $_USER_CRONDAYS
130 $_USER_CRONSTART * * $_USER_CRONDAYS screen -dmS $_XMRIG_SCREEN xmrig --config=$_XMRIG_CONFIG_LOCATION"; } | crontab -
160 $_USER_CRONSTART * * $_USER_CRONDAYS screen -dmS $_XMRIG_SCREEN xmrig --config=$_XMRIG_CONFIG_LOCATION"; } | crontab -
14
17
15crontab -l | { cat; echo "#Stop at $_USER_TIMESTOP on days $_USER_CRONDAYS
18crontab -l | { cat; echo "#Stop at $_USER_TIMESTOP on days $_USER_CRONDAYS
160 $_USER_CRONSTOP * * $_USER_CRONDAYS screen -S $_XMRIG_SCREEN -X kill"; } | crontab -
190 $_USER_CRONSTOP * * $_USER_CRONDAYS screen -S $_XMRIG_SCREEN -X kill"; } | crontab -
17
20
18−echo "${_GREEN}CRONTAB CREATED${_RESET}"
21+echo "${_CYAN}CRONTAB STOPPED${_RESET}"
19
22
depends.sh+4−2
@@ -2,7 +2,9 @@
2
2
3# Install the software requirements
3# Install the software requirements
4
4
5+echo "${_GREEN}INSTALL DEPENDS STARTED${_RESET}"
6+
5−if [ $_APT_DEPENDS = 1 ]; then
7+if [ "$_APT_DEPENDS" -eq "1" ]; then
6
8
7 # Install xmrig depends
9 # Install xmrig depends
8 sudo apt install -y software-properties-common git build-essential cmake libuv1-dev libssl-dev libmicrohttpd-dev libhwloc-dev gcc g++
10 sudo apt install -y software-properties-common git build-essential cmake libuv1-dev libssl-dev libmicrohttpd-dev libhwloc-dev gcc g++
@@ -12,4 +14,4 @@ if [ $_APT_DEPENDS = 1 ]; then
12
14
13fi
15fi
14
16
15−echo "${_GREEN}DEPENDENCIES INSTALLED${_RESET}"
17+echo "${_CYAN}INSTALL DEPENDS STOPPED${_RESET}"
functions.sh+27−8
@@ -1,5 +1,7 @@
1#!/bin/bash
1#!/bin/bash
2
2
3+echo -e "${_GREEN}LOADING FUNCTIONS${_RESET}"
4+
3function prompt_confirm() {
5function prompt_confirm() {
4 while true; do
6 while true; do
5 read -r -n 1 -p "${1:-Continue?} [y/n]: " REPLY
7 read -r -n 1 -p "${1:-Continue?} [y/n]: " REPLY
@@ -11,18 +13,35 @@ function prompt_confirm() {
11 done
13 done
12}
14}
13
15
16+function show_settings () {
17+ echo "${_CYAN}Settings from loaded environment:${_RESET}"
18+ echo "${_GREEN}Pool URL:${_RESET}: $_POOLS_URL"
19+ echo "${_GREEN}Recieve Wallet:${_RESET}: $_POOLS_USER"
20+ echo "${_GREEN}Email Address:${_RESET}: $_POOLS_PASS"
21+}
22+
14function show_mysettings () {
23function show_mysettings () {
24+ if [ -f $_WORK_DIR/$_MYSETTINGS_FILE ]; then
25+ load_mysettings
26+ echo "${_CYAN}Settings from mysettings.sh:${_RESET}"
27+ echo "${_GREEN}Pool URL:${_RESET}: $_POOLS_URL"
28+ echo "${_GREEN}Recieve Wallet:${_RESET}: $_POOLS_USER"
29+ echo "${_GREEN}Email Address:${_RESET}: $_POOLS_PASS"
30+ fi
31+}
32+
33+function load_mysettings () {
15 if [ -f $_WORK_DIR/$_MYSETTINGS_FILE ]; then
34 if [ -f $_WORK_DIR/$_MYSETTINGS_FILE ]; then
16 . $_MYSETTINGS_FILE
35 . $_MYSETTINGS_FILE
17− echo "${_CYAN}Settings from loaded from mysettings.sh.${_RESET}"
18− echo "${_GREEN}Pool URL:${_RESET}: $_POOL_SERVER_URL"
19− echo "${_GREEN}Pool Port:${_RESET}: $_POOL_SERVER_PORT"
20− echo "${_GREEN}Recieve Wallet:${_RESET}: $_RECEIVE_WALLET"
21− echo "${_GREEN}Email Address:${_RESET}: $_EMAIL"
22− echo "${_GREEN}Worker Identity:${_RESET}: $_API_WORKER_ID"
23 fi
36 fi
24}
37}
25
38
39+function my_config_json () {
40+
41+ _CONFIG_JSON=$(jo -p -B api=$(jo id=$_API_ID worker-id=$_API_WORKER_ID) autosave=$_AUTOSAVE background=$_BACKGROUND colors=$_COLORS cpu=$(jo enabled=$_CPU_ENABLED huge-pages=$_CPU_HUGE_PAGES hw-aes=$_CPU_HW_AES priority=$_CPU_PRIORITY asm=$_CPU_ASM cn=$(jo -a $_CPU_CN) cn/0=$_CPU_CN_0 cn-lite/0=$_CPU_CN_LITE_0) opencl=$(jo enabled=$_OPENCL_ENABLED cache=$_OPENCL_CACHE loader=$_OPENCL_LOADER platform=$_OPENCL_PLATFORM) donate-level=$_DONATE_LEVEL donate-over-proxy=$_DONATE_OVER_PROXY http=$(jo enabled=$_HTTP_ENABLED host=$_HTTP_HOST port=$_HTTP_PORT access-token=$_HTTP_ACCESS_TOKEN restricted=$_HTTP_RESTRICTED) log-file=$_LOG_FILE pools=$(jo -a $(jo algo=$_POOLS_ALGO url=$_POOLS_URL user=$_POOLS_USER pass=$_POOLS_PASS rig-id=$_POOLS_RIG_ID nicehash=$_POOLS_NICEHASH keepalive=$_POOLS_KEEPALIVE enabled=$_POOLS_ENABLED tls=$_POOLS_TLS tls-fingerprint=$_POOLS_TLS_FINDERPRINT daemon=$_POOLS_DAEMON)) print-time=$_PRINT_TIME retries=$_RETRIES retry-pause=$_RETRIES_PAUSE syslog=$_SYSLOG user-agent=$_USER_AGENT watch=$_WATCH)
42+
43+}
44+
26function build_xmrig () {
45function build_xmrig () {
27 if [ -d $_XMRIG_BUILD_LOCATION ]; then
46 if [ -d $_XMRIG_BUILD_LOCATION ]; then
28 # Remove existing build directory
47 # Remove existing build directory
@@ -39,7 +58,7 @@ function build_xmrig () {
39 cd $_XMRIG_BUILD_LOCATION
58 cd $_XMRIG_BUILD_LOCATION
40
59
41 # Configure cmake scafolding
60 # Configure cmake scafolding
42− cmake .. -DCMAKE_C_COMPILER=gcc-7 -DCMAKE_CXX_COMPILER=g++-7
61+ cmake ..
43
62
44 # Compile the software
63 # Compile the software
45 make
64 make
@@ -103,4 +122,4 @@ function calc_hugepages () {
103
122
104}
123}
105
124
106−echo -e "${_GREEN}FUNCTIONS LOADED${_RESET}"
125+echo -e "${_CYAN}FUNCTIONS LOADED${_RESET}"
input.sh+29−28
@@ -2,21 +2,27 @@
2
2
3# Ask user questions
3# Ask user questions
4# Capture input
4# Capture input
5+# if setting already exist use existing
5
6
6−echo -e "${_YELLOW}Opt for default settings or enter your own.\n"
7+echo -e "${_GREEN}USER SETTINGS STARTED${_RESET}"
7−
8−echo -e "No - values taken from 'settings.sh'."
9−echo -e "Yes - values taken from 'mysettings.sh' (recomended).\n"
10−
11−echo -e "When 'mysettings.sh' they are given preference at installation and on subsequence restarts."
12−echo -e "Own settings is recomended to avoid your settings being overidden in upgrades.${_RESET}\n"
13
8
14if [ -f $_WORK_DIR/$_MYSETTINGS_FILE ]; then
9if [ -f $_WORK_DIR/$_MYSETTINGS_FILE ]; then
15
10
16 # Call function
11 # Call function
17− show_mysettings
12+
13+ load_mysettings
14+
15+ my_config_json
18
16
19else
17else
18+ echo -e " ${_YELLOW}Opt for default settings or enter your own.\n"
19+
20+ echo -e " No - 'config.json' created with values from 'settings.sh'."
21+ echo -e " Yes - 'config.json' created with values from 'mysettings.sh' (recomended).\n"
22+
23+ echo -e " When 'mysettings.sh' exists this prompt will be skipped at furture installation."
24+ echo -e " Own settings is recomended to avoid your settings being overidden in upgrades.${_RESET}\n"
25+
20
26
21 prompt_confirm "Enter your own settings?"
27 prompt_confirm "Enter your own settings?"
22
28
@@ -30,31 +36,26 @@ else
30
36
31 # Prompt user input
37 # Prompt user input
32
38
33− echo "Current pool URL: $_POOL_SERVER_URL"
39+ echo "Current pool URL: $_POOLS_URL"
34− read -p "Enter new pool URL: " _POOL_SERVER_URL
40+ read -p "Enter new pool URL: " _POOLS_URL
35−
41+ echo "_POOLS_URL=\"$_POOLS_URL\"" >> $_MYSETTINGS_FILE_LOCATION
36− echo "Current pool TCP Port: $_POOL_SERVER_PORT"
37− read -p "Enter new pool TCP Port: " _POOL_SERVER_PORT
38−
39− echo "Current Receive Wallet address: $_RECEIVE_WALLET"
40− read -p "Enter new Receive Wallet address: " _RECEIVE_WALLET
41
42
42− echo "Current email address: $_EMAIL"
43+ echo "Current Receive Wallet address: $_POOLS_USER"
43− read -p "Enter new email address: " _EMAIL
44+ read -p "Enter new Receive Wallet address: " _POOLS_USER
45+ echo "_POOLS_USER=\"$_POOLS_USER\"" >> $_MYSETTINGS_FILE_LOCATION
44
46
45− echo "Current Miner Identifier: $_API_WORKER_ID"
47+ echo "Current email address: $_POOLS_PASS"
46− read -p "Enter Miner Identifier: " _API_WORKER_ID
48+ read -p "Enter new email address: " _POOLS_PASS
49+ echo "_POOLS_PASS=\"$_POOLS_PASS\"" >> $_MYSETTINGS_FILE_LOCATION
47
50
48− # Write user input to file
51+ fi
52+
53+ # Call function
49
54
50− echo "_POOL_SERVER_URL=\"$_POOL_SERVER_URL\"" >> $_MYSETTINGS_FILE_LOCATION
55+ load_mysettings
51− echo "_POOL_SERVER_PORT=\"$_POOL_SERVER_PORT\"" >> $_MYSETTINGS_FILE_LOCATION
52− echo "_RECEIVE_WALLET=\"$_RECEIVE_WALLET\"" >> $_MYSETTINGS_FILE_LOCATION
53− echo "_EMAIL=\"$_EMAIL\"" >> $_MYSETTINGS_FILE_LOCATION
54− echo "_API_WORKER_ID=\"$_API_WORKER_ID\"" >> $_MYSETTINGS_FILE_LOCATION
55
56
56− fi
57+ my_config_json
57
58
58fi
59fi
59
60
60−echo -e "${_GREEN}MYSETTINGS LOADED${_RESET}"
61+echo "${_CYAN}USER SETTINGS STOPPED${_RESET}"
install.sh+19−17
@@ -1,5 +1,17 @@
1#!/bin/bash
1#!/bin/bash
2
2
3+
4+# Colors
5+_CYAN=`tput setaf 1`
6+_GREEN=`tput setaf 2`
7+_YELLOW=`tput setaf 3`
8+_BLUE=`tput setaf 4`
9+_MAGENTA=`tput setaf 5`
10+_CYAN=`tput setaf 6`
11+_RESET=`tput sgr0`
12+
13+echo "${_GREEN}INSTALLATION STARTED${_RESET}"
14+
3_DEBUG=$1
15_DEBUG=$1
4
16
5if $_DEBUG; then
17if $_DEBUG; then
@@ -21,34 +33,24 @@ fi
21
33
22# Get settings
34# Get settings
23. settings.sh
35. settings.sh
24−sleep 5
25−
26−# User input
27−. input.sh
28−sleep 5
29−
30−# Stop running instance
31−. stop.sh
32
36
33# Update system
37# Update system
34. maintenance.sh
38. maintenance.sh
35−sleep 5
36
39
37# Install dependencies
40# Install dependencies
38. depends.sh
41. depends.sh
39−sleep 5
42+
43+# User input
44+. input.sh
45+
46+# Stop running instance
47+. stop.sh
40
48
41# Get source and build by sourcing our build file
49# Get source and build by sourcing our build file
42. build.sh
50. build.sh
43−sleep 5
44
51
45# Create a config.json
52# Create a config.json
46. config.sh
53. config.sh
47−sleep 5
48−
49−# Setup crontab for user
50−. crontab.sh
51−sleep 5
52
54
53# Unset REPO variable so start script will execute program
55# Unset REPO variable so start script will execute program
54SCREEN=""
56SCREEN=""
@@ -57,4 +59,4 @@ SCREEN=""
57. start.sh
59. start.sh
58
60
59
61
60−echo -e "${_GREEN}INSTALLATION COMPLETE${_RESET}"
62+echo -e "${_CYAN}INSTALLATION COMPLETED${_RESET}"
maintenance.sh+4−2
@@ -1,10 +1,12 @@
1#!/bin/bash
1#!/bin/bash
2
2
3+echo "${_GREEN}MAINTENANCE STARTED${_RESET}"
4+
3−if [ $_APT_MAINETANCE = 1 ]; then
5+if [ "$_APT_MAINETANCE" -eq "1" ]; then
4
6
5 sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y && sudo apt autoclean
7 sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y && sudo apt autoclean
6
8
7fi
9fi
8
10
9−echo "${_GREEN}MAINTENANCE COMPLETE${_RESET}"
11+echo "${_CYAN}MAINTENANCE STOPPED${_RESET}"
10
12
settings.sh+26−25
@@ -1,17 +1,22 @@
1#!/bin/bash
1#!/bin/bash
2
2
3−_EMAIL="miners@prepaidmeters.com"
3+echo -e "${_GREEN}LOADING DEFAULT SETTINGS${_RESET}"
4
4
5−_RECEIVE_WALLET="854sqm2Cm4TB2XgPHWqSPSbnFAe3SMzdEDzZHpukQ8NHBPFropbnkFmEKiZPgwjMFC9PTjaFscR2UU6ZwFCqJzGMUiZVbTM"
5+_EMAIL="spam@iko.soy"
6
6
7+_RECEIVE_WALLET="44FADBDhNRvjJszF5mLS4VCwZ71mY7ftfUErEisPoT724hb5eYuvuFqWthniY8dGPBTcWuBoeLrLJVkxLHCb1Lsd4DdbZzZ"
8+
7−_POOL_SERVER_URL="pool.supportxmr.com"
9+_POOL_SERVER_URL="xmrpool.eu"
8−_POOL_SERVER_PORT="3333"
10+_POOL_SERVER_PORT="5555"
11+
12+# Call function
13+show_settings
9
14
10#######################################################################
15#######################################################################
11# DO NOT CHANGE AFTER THIS POINT UNLESS YOU KNOW WHAT YOU ARE DOING #
16# DO NOT CHANGE AFTER THIS POINT UNLESS YOU KNOW WHAT YOU ARE DOING #
12#######################################################################
17#######################################################################
13
18
14−_API_ID="null"
19+_API_ID='null'
15_API_WORKER_ID="$HOSTNAME"
20_API_WORKER_ID="$HOSTNAME"
16
21
17_AUTOSAVE="true"
22_AUTOSAVE="true"
@@ -29,24 +34,29 @@ calc_threads
29_CPU_ENABLED="true"
34_CPU_ENABLED="true"
30_CPU_HUGE_PAGES="true"
35_CPU_HUGE_PAGES="true"
31_CPU_HW_AES="$_AES_NI"
36_CPU_HW_AES="$_AES_NI"
32−_CPU_PRIORITY="null"
37+_CPU_PRIORITY='null'
33_CPU_ASM="true"
38_CPU_ASM="true"
34_CPU_CN="$_ENV_CPU_THREAD_AFFINITY"
39_CPU_CN="$_ENV_CPU_THREAD_AFFINITY"
35
40
36_CPU_CN_0="false"
41_CPU_CN_0="false"
37_CPU_CN_LITE_0="false"
42_CPU_CN_LITE_0="false"
38
43
44+_OPENCL_ENABLED="false"
45+_OPENCL_CACHE="true"
46+_OPENCL_LOADER='null'
47+_OPENCL_PLATFORM="AMD"
48+
39−_DONATE_LEVEL="5"
49+_DONATE_LEVEL="0"
40
50
41_DONATE_OVER_PROXY="1"
51_DONATE_OVER_PROXY="1"
42
52
43_HTTP_ENABLED="true"
53_HTTP_ENABLED="true"
44_HTTP_HOST=$(hostname --all-ip-addresses | awk '{print $1}')
54_HTTP_HOST=$(hostname --all-ip-addresses | awk '{print $1}')
45_HTTP_PORT="8080"
55_HTTP_PORT="8080"
46−_HTTP_ACCESS_TOKEN="null"
56+_HTTP_ACCESS_TOKEN='null'
47_HTTP_RESTRICTED="false"
57_HTTP_RESTRICTED="false"
48
58
49−_LOG_FILE="null"
59+_LOG_FILE='null'
50
60
51_POOLS_ALGO="cn/r"
61_POOLS_ALGO="cn/r"
52_POOLS_URL="$_POOL_SERVER_URL:$_POOL_SERVER_PORT"
62_POOLS_URL="$_POOL_SERVER_URL:$_POOL_SERVER_PORT"
@@ -56,8 +66,8 @@ _POOLS_RIG_ID="$HOSTNAME"
56_POOLS_NICEHASH="true"
66_POOLS_NICEHASH="true"
57_POOLS_KEEPALIVE="true"
67_POOLS_KEEPALIVE="true"
58_POOLS_ENABLED="true"
68_POOLS_ENABLED="true"
59−_POOLS_TLS="null"
69+_POOLS_TLS='null'
60−_POOLS_TLS_FINDERPRINT="null"
70+_POOLS_TLS_FINDERPRINT='null'
61_POOLS_DAEMON="false"
71_POOLS_DAEMON="false"
62
72
63_PRINT_TIME="30"
73_PRINT_TIME="30"
@@ -67,12 +77,10 @@ _RETRIES_PAUSE="5"
67
77
68_SYSLOG="false"
78_SYSLOG="false"
69
79
70−_USER_AGENT="null"
80+_USER_AGENT='null'
71
81
72_WATCH="true"
82_WATCH="true"
73
83
74−_CONFIG_JSON=$(jo -p -B api=$(jo id=$_API_ID worker-id=$_API_WORKER_ID) autosave=$_AUTOSAVE background=$_BACKGROUND colors=$_COLORS cpu=$(jo enabled=$_CPU_ENABLED huge-pages=$_CPU_HUGE_PAGES hw-aes=$_CPU_HW_AES priority=$_CPU_PRIORITY asm=$_CPU_ASM cn=$(jo -a $_CPU_CN) cn/0=$_CPU_CN_0 cn-lite/0=$_CPU_CN_LITE_0) donate-level=$_DONATE_LEVEL donate-over-proxy=$_DONATE_OVER_PROXY http=$(jo enabled=$_HTTP_ENABLED host=$_HTTP_HOST port=$_HTTP_PORT access-token=$_HTTP_ACCESS_TOKEN restricted=$_HTTP_RESTRICTED) logfile=$_LOGFILE pools=$(jo -a $(jo algo=$_POOLS_ALGO url=$_POOLS_URL user=$_POOLS_USER pass=$_POOLS_PASS rig-id=$_POOLS_RIG_ID nicehash=$_POOLS_NICEHASH keepalive=$_POOLS_KEEPALIVE enabled=$_POOLS_ENABLED tls=$_POOLS_TLS tls-fingerprint=$_POOLS_TLS_FINDERPRINT daemon=$_POOLS_DAEMON)) print-time=$_PRINT_TIME retries=$_RETRIES retry-pause=$_RETRIES_PAUSE syslog=$_SYSLOG user-agent=$_USER_AGENT watch=$_WATCH)
75−
76# Set working directory
84# Set working directory
77_WORK_DIR="$(pwd)"
85_WORK_DIR="$(pwd)"
78cd $_WORK_DIR
86cd $_WORK_DIR
@@ -87,7 +95,7 @@ _XMRIG_CLONE="xmrig-cpu"
87_XMRIG_CLONE_LOCATION="$_WORK_DIR/$_XMRIG_CLONE"
95_XMRIG_CLONE_LOCATION="$_WORK_DIR/$_XMRIG_CLONE"
88
96
89# Set branch from which to build
97# Set branch from which to build
90−_XMRIG_BRANCH="beta"
98+_XMRIG_BRANCH="master"
91
99
92# Set build directory
100# Set build directory
93_XMRIG_BUILD="build"
101_XMRIG_BUILD="build"
@@ -111,8 +119,8 @@ _XMRIG_CONFIG="config.json"
111_XMRIG_CONFIG_LOCATION="$_WORK_DIR/$_XMRIG_CONFIG"
119_XMRIG_CONFIG_LOCATION="$_WORK_DIR/$_XMRIG_CONFIG"
112
120
113# Set values for crontab
121# Set values for crontab
114−_USER_CRONSTART="18"
122+_USER_CRONSTART="17"
115−_USER_CRONSTOP="6"
123+_USER_CRONSTOP="8"
116_USER_CRONDAYS="1-5"
124_USER_CRONDAYS="1-5"
117
125
118# Set the name of the screen created by start script
126# Set the name of the screen created by start script
@@ -126,13 +134,6 @@ _APT_MAINETANCE="1"
126# 1 = yes 0 = no
134# 1 = yes 0 = no
127_APT_DEPENDS="1"
135_APT_DEPENDS="1"
128
136
129−# Colors
130−_GREEN=`tput setaf 2`
131−_YELLOW=`tput setaf 3`
132−_BLUE=`tput setaf 4`
133−_MAGENTA=`tput setaf 5`
134−_CYAN=`tput setaf 6`
135−_RESET=`tput sgr0`
136
137
137−echo -e "${_GREEN}SETTINGS LOADED${_RESET}"
138+echo -e "${_CYAN}DEFAULT SETTINGS LOADED${_RESET}"
138
139
start.sh+41−9
@@ -1,5 +1,7 @@
1#!/bin/bash
1#!/bin/bash
2
2
3+echo "${_GREEN}MINING STARTED${_RESET}"
4+
3# When this script is:
5# When this script is:
4# * run by crontab, load the settings
6# * run by crontab, load the settings
5# * run by install, do not load settings
7# * run by install, do not load settings
@@ -8,20 +10,50 @@
8. functions.sh
10. functions.sh
9. settings.sh
11. settings.sh
10
12
11−if ! screen -list | grep -q "$_XMRIG_SCREEN"; then
13+# if ! screen -list | grep -q "$_XMRIG_SCREEN"; then
12
14
13 # Call functions
15 # Call functions
16+ show_settings
14 show_mysettings
17 show_mysettings
15− start_xmrig
18+ # start_xmrig
16
19
17 # List screen
20 # List screen
18− screen -ls
21+ # screen -ls
19−else
22+# else
20
23
21 # List screen
24 # List screen
22− screen -ls
25+ # screen -ls
23−
26+
24−fi
27+# fi
25−
28+echo "[Unit]" | sudo tee /etc/systemd/system/xmrig.service
26−echo "${_GREEN}MINING STARTED${_RESET}"
29+echo "Description=XMRIG service" | sudo tee -a /etc/systemd/system/xmrig.service
30+echo "After=network.target" | sudo tee -a /etc/systemd/system/xmrig.service
31+echo "StartLimitIntervalSec=0" | sudo tee -a /etc/systemd/system/xmrig.service
32+echo "[Service]" | sudo tee -a /etc/systemd/system/xmrig.service
33+echo "Type=simple" | sudo tee -a /etc/systemd/system/xmrig.service
34+echo "Restart=always" | sudo tee -a /etc/systemd/system/xmrig.service
35+echo "RestartSec=3" | sudo tee -a /etc/systemd/system/xmrig.service
36+echo "User=root" | sudo tee -a /etc/systemd/system/xmrig.service
37+echo "ExecStart=$_XMRIG_BUILD_LOCATION/xmrig --config=$_XMRIG_CONFIG_LOCATION" | sudo tee -a /etc/systemd/system/xmrig.service
38+echo "" | sudo tee -a /etc/systemd/system/xmrig.service
39+echo "[Install]" | sudo tee -a /etc/systemd/system/xmrig.service
40+echo "WantedBy=multi-user.target" | sudo tee -a /etc/systemd/system/xmrig.service
41+
42+echo "STARTING XMRIG/SERVICES"
43+
44+sudo service logrotate start
45+sudo service ntp start
46+sudo service xmrig start
47+
48+echo "STARTING XMRIG/SERVICES @ BOOT"
49+
50+sudo systemctl enable logrotate
51+sudo systemctl enable ntp
52+sudo systemctl enable xmrig
53+
54+echo "${_CYAN}MINING RUNNING${_RESET}"
55+echo "${_YELLOW} The process is running in a screen session."
56+echo "${_YELLOW} The screen session is named:${_RESET} $_XMRIG_SCREEN"
57+echo "${_YELLOW} Command to view process:${_RESET} screen -r $_XMRIG_SCREEN"
58+echo "${_MAGENTA} ENJOY!!!${_RESET}"
27
59
stop.sh+3−1
@@ -4,6 +4,8 @@
4# * run by crontab, load the settings
4# * run by crontab, load the settings
5# * run by install, do not load settings
5# * run by install, do not load settings
6
6
7+echo "${_GREEN}END MINING STARTED${_RESET}"
8+
7if [ -z "$_XMRIG_SCREEN" ]; then
9if [ -z "$_XMRIG_SCREEN" ]; then
8 # Load settings when run by crontab
10 # Load settings when run by crontab
9 . settings.sh
11 . settings.sh
@@ -16,5 +18,5 @@ else
16 stop_xmrig
18 stop_xmrig
17fi
19fi
18
20
19−echo "${_GREEN}MINING STOPPED${_RESET}"
21+echo "${_CYAN}END MINING STOPPED${_RESET}"
20
22
update.sh+3−1
@@ -1,9 +1,11 @@
1#!/bin/bash
1#!/bin/bash
2
2
3+echo "${_GREEN}UPDATE STARTED${_RESET}"
4+
3git pull
5git pull
4
6
5# install
7# install
6. install.sh
8. install.sh
7sleep 5
9sleep 5
8
10
9−echo "${_GREEN}UPDATE COMPLETE${_RESET}"
11+echo "${_CYAN}UPDATE COMPLETE${_RESET}"