Latest News:
*New 11.2 series Release:
2019-06-20: XigmaNAS 11.2.0.4.6766 - released!

*New 12.0 series Release:
2019-06-20: XigmaNAS 12.0.0.4.6766 - released!

We really need "Your" help on XigmaNAS https://translations.launchpad.net/xigmanas translations. Please help today!

Producing and hosting XigmaNAS cost money, please consider a donation to our project so we can continue to offer you the best.
We need your support! eg: PAYPAL

[HOWTO] Install NCurses Disk Usage (embedded)

XigmaNAS Scripts and shell tips
Forum rules
Set-Up GuideFAQsForum Rules
Post Reply
ginggs
Starter
Starter
Posts: 25
Joined: 27 Jun 2012 14:30
Status: Offline

[HOWTO] Install NCurses Disk Usage (embedded)

#1

Post by ginggs » 24 May 2018 21:00

Here is another script based on danmero's script for installing Midnight Commander.

Now updated for XigmaNAS 11.2.0.4.

NCurses Disk Usage
Ncdu is a disk usage analyzer with an ncurses interface. It is designed to find space hogs on a remote server where you don't have an entire graphical setup available, but it is a useful tool even on regular desktop systems. Ncdu aims to be fast, simple and easy to use, and should be able to run in any minimal POSIX-like environment with ncurses installed.
Image
Image
More screenshots.

Code: Select all

#!/bin/sh
# filename:     ncdu.sh
# author:       Graham Inggs
# date:         2018-05-24 ; Initial release for NAS4Free 11.1.0.4
# date:         2018-12-29 ; Updated for XigmaNAS 11.2.0.4
# purpose:      Install NCurses Disk Usage (ncdu) on XigmaNAS (embedded version).
# Note:         Check the end of the page.
#
#----------------------- Set variables ------------------------------------------------------------------
DIR=`dirname $0`;
PLATFORM=`uname -m`
RELEASE=`uname -r | cut -d- -f1`
REL_MAJOR=`echo $RELEASE | cut -d. -f1`
REL_MINOR=`echo $RELEASE | cut -d. -f2`
URL="http://distcache.freebsd.org/FreeBSD:${REL_MAJOR}:${PLATFORM}/release_${REL_MINOR}/All"
NCDUFILE="ncdu-1.13.txz"
#----------------------- Set Errors ---------------------------------------------------------------------
_msg() { case $@ in
  0) echo "The script will exit now."; exit 0 ;;
  1) echo "No route to server, or file do not exist on server"; _msg 0 ;;
  2) echo "Can't find ${FILE} on ${DIR}"; _msg 0 ;;
  3) echo "NCurses Disk Usage installed and ready! (ONLY USE DURING A SSH SESSION)"; exit 0 ;;
  4) echo "Always run this script using the full path: /mnt/.../directory/ncdu.sh"; _msg 0 ;;
esac ; exit 0; }
#----------------------- Check for full path ------------------------------------------------------------
if [ ! `echo $0 |cut -c1-5` = "/mnt/" ]; then _msg 4; fi
cd $DIR;
#----------------------- Download and decompress ncdu files if needed -----------------------------------
FILE=${NCDUFILE}
if [ ! -d ${DIR}/usr/local/bin ]; then
  if [ ! -e ${DIR}/${FILE} ]; then fetch ${URL}/${FILE} || _msg 1; fi
  if [ -f ${DIR}/${FILE} ]; then tar xzf ${DIR}/${FILE} || _msg 2;
    rm ${DIR}/+*; rm -R ${DIR}/usr/local/man; rm -R ${DIR}/usr/local/share; fi
  if [ ! -d ${DIR}/usr/local/bin ] ; then _msg 4; fi
fi
#----------------------- Create wrapper script to enable experimental color support ---------------------
if [ ! -e ${DIR}//usr/local/bin/ncdu.real ]; then
  mv ${DIR}/usr/local/bin/ncdu ${DIR}/usr/local/bin/ncdu.real
  cat <<'EOF' >${DIR}/usr/local/bin/ncdu
#!/bin/sh
/usr/local/bin/ncdu.real --color dark "$@"
EOF
  chmod +x ${DIR}/usr/local/bin/ncdu
fi
#----------------------- Create symlinks ----------------------------------------------------------------
for i in `ls $DIR/usr/local/bin/`
  do if [ ! -e /usr/local/bin/${i} ]; then ln -s ${DIR}/usr/local/bin/$i /usr/local/bin; fi; done
_msg 3 ; exit 0;
#----------------------- End of Script ------------------------------------------------------------------
# 1. Keep this script in its own directory.
# 2. chmod the script u+x,
# 3. Always run this script using the full path: /mnt/.../directory/ncdu.sh
# 4. You can add this script to WebGUI: Advanced: Command Scripts as a PostInit command (see 3).
# 5. To run Ncurses Disk Usage from shell type 'ncdu'.
Code also on github.

Fetch the current version:

Code: Select all

fetch https://github.com/ginggs/xigmanas-ncdu/raw/master/ncdu.sh
Last edited by ginggs on 29 Dec 2018 17:44, edited 5 times in total.

User avatar
JoseMR
Hardware & Software Guru
Hardware & Software Guru
Posts: 1113
Joined: 16 Apr 2014 04:15
Location: PR
Contact:
Status: Offline

Re: [HOWTO] Install NCurses Disk Usage (embedded)

#2

Post by JoseMR » 13 Jun 2018 10:06

Very nice work, neat utility indeed, I also use "htop" and "mc-light" as well for its nice graphical stats and functionality, yet small foot print, a must have little admin tools to be included into any OS base I could say.

Regards
System: FreeBSD 12 RootOnZFS, MB: Supermicro X8SI6-F, Xeon X3450, 16GB DDR3 ECC RDIMMs.
Addons at GitHub
JoseMRPubServ
Boot Environments Intro

ginggs
Starter
Starter
Posts: 25
Joined: 27 Jun 2012 14:30
Status: Offline

Re: [HOWTO] Install NCurses Disk Usage (embedded)

#3

Post by ginggs » 29 Dec 2018 10:42

Now updated for XigmaNAS 11.2.0.4.

ginggs
Starter
Starter
Posts: 25
Joined: 27 Jun 2012 14:30
Status: Offline

Re: [HOWTO] Install NCurses Disk Usage (embedded)

#4

Post by ginggs » 29 Dec 2018 18:13

JoseMR wrote:
13 Jun 2018 10:06
Very nice work, neat utility indeed, I also use "htop" and "mc-light" as well for its nice graphical stats and functionality, yet small foot print, a must have little admin tools to be included into any OS base I could say.
Thanks for mentioning htop! I've made a similar installer for it.

Post Reply

Return to “Scripts and shell tips”