QNAP

From Freephile Wiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

The QNAP NAS TS-231 forms the basis of our local network shares and backup

2x 2TB Western Digital "Red" drives in RAID 1 configuration = 1.8 TB storage

locally on the network, it uses DHCP, with two ethernet nics (dual-homed) Access it via your network share (at 192.168.1.4 or 192.168.1.5) or externally at http://cloud.equality-tech.com

Backups[edit]

I've created rsync scripts in the 'admin' users home directory which will backup eqt and greg-laptop nb: greg-laptop is ONLY the home directory, not the full disk.

There is also a Duplicity script in /share/CACHEDEV1_DATA/homes/greg/backups/backup_home_to_qnap_san.sh but that's not tested/operational

Operating System[edit]

The QNAP uses an operating system called QTS (based on Linux and GPL) QTS 4.2.1

Administration[edit]

Under the covers, the QNAP is a Linux box, so if you want to reset someones password, you can just use the passwd command as usual.

NAS Report[edit]

Here is a script which generates a script, and then runs it. Not sure why it's not just a plain script, but hey it's a neat trick. If you want to just use the script it generates, see /tmp/nasreport after invoking this. cat ./nas_report.sh

#!/bin/sh
rm -f /tmp/nasreport
touch /tmp/nasreport
chmod +x /tmp/nasreport
cat <<EOF >>/tmp/nasreport
#!/bin/sh
#
# NAS Report by Patrick Wilson
# see: http://forum.qnap.com/viewtopic.php?f=185&t=82260#p366188
#
# 
echo "*********************"
echo "** QNAP NAS Report **"
echo "*********************"
echo " "
echo "NAS Model:      \$(getsysinfo model)"
echo "Firmware:       \$(getcfg system version) Build \$(getcfg system 'Build Number')"
echo "System Name:    \$(/bin/hostname)"
echo "Workgroup:      \$(getcfg system workgroup)"
echo "Base Directory: \$(dirname \$(getcfg -f /etc/config/smb.conf Public path))"
echo "NAS IP address: \$(ifconfig \$(getcfg network 'Default GW Device') | grep addr: | awk '{ print \$2 }' | cut -d: -f2)"
echo " " 
echo "Default Gateway Device: \$(getcfg network 'Default GW Device')" 
echo " "
ifconfig \$(getcfg network 'Default GW Device') | grep -v HWaddr
echo " "
echo -n "DNS Nameserver(s):" 
cat /etc/resolv.conf | grep nameserver | cut -d' ' -f2
echo " "
echo " "
echo "HDD Information:"
echo " "
alpha='abcdefghijklmnopqrstuvwxyz'
drives=\$(getcfg Storage 'Disk Drive Number')
for ((i=1;i<=drives;++i)) ; do
   echo -n "HDD\$i -"
   if [ ! -b /dev/sd\${alpha:\$i-1:1} ] ; then
      echo "Drive absent"
   else
      hdparm -i /dev/sd\${alpha:\$i-1:1} | grep "Model"
      echo " "
      parted /dev/sd\${alpha:\$i-1:1} print
      echo " "
      /sbin/get_hd_smartinfo -d \$i
      echo " "
   fi
done
echo "Volume Status"
echo " "
mdadm -D /dev/md0 /dev/md1 2>/dev/null
echo " "
cat /proc/mdstat
echo " "
echo "Disk Space:"
echo " "
df -h | grep -v qpkg
echo " "
echo "Mount Status:" 
echo " "
mount | grep -v qpkg
echo " "
echo "Contents of \$(dirname \$(getcfg -f /etc/config/smb.conf Public path)):"
echo " "
ls -lF \$(dirname \$(getcfg -f /etc/config/smb.conf Public path))/
echo " "
echo "Windows Shares:" 
echo " "
for i in \$(grep \] /etc/config/smb.conf | sed 's/^\[//g' | sed 's/\]//g' | grep -v global) ;do 
   echo -n "\$i:"
   testparm -s -l --section-name="\$i" --parameter-name=path 2>/dev/null 
done
echo " "
echo "QNAP Media Scanner / Transcoder processes running: "
echo " " 
/bin/ps | grep medialibrary | grep -v grep
echo " " 
echo -n "MediaLibrary Configuration file: " 
ls -alF /etc/config/medialibrary.conf
echo " " 
echo "/etc/config/medialibrary.conf:"
cat /etc/config/medialibrary.conf
echo " "
echo "iTunes Music Store: \$(getcfg -f /etc/config/mt-daapd.conf general mp3_dir)"
echo " "
echo "Memory Information:" 
echo " "
free | grep -v cache:
echo " "
echo "NASReport completed on \$(date +'%Y-%m-%d %T') (\$0) "
echo " "
EOF
sleep 2
clear
/tmp/nasreport

Utilities[edit]

The NAS is not a full linux box. It only comes with a limited subset of commands, and some of those are provided by BusyBox. To see the output below, just run the busybox command.

BusyBox v1.01 (2016.05.31-18:24+0000) multi-call binary

Usage: busybox [function] [arguments]...
   or: [function] [arguments]...

        BusyBox is a multi-call binary that combines many common Unix
        utilities into a single executable.  Most people will create a
        link to busybox for each function they wish to use and BusyBox
        will act like whatever it was invoked as!

Currently defined functions:
        [, addgroup, adduser, ash, awk, basename, bunzip2, busybox, bzcat, cat, chgrp, chmod, chown, chroot, chvt, clear, cmp, cp, crond, crontab, cut, date, dc, dd, deallocvt, delgroup, deluser, df, dirname, dmesg, dos2unix, du, echo, egrep, env, expr, false, fdisk, fgrep, find, free, getty, grep, gunzip, gzip, halt, head, hexdump, hostname, hwclock, id, ifconfig, init, insmod, install, ip, kill, killall, klogd, linuxrc, ln, logger, login, ls, lsmod, md5sum, mkdir, mknod, mktemp, modprobe, more, mount, mv, nameif, netstat, nslookup, openvt, passwd, pidof, ping, ping6, pivot_root, poweroff, ps, pwd, rdate, readlink, reboot, renice, reset, rm, rmdir, rmmod, route, sed, sh, sha1sum, sleep, sort, strings, swapoff, swapon, switch_root, sync, sysctl, syslogd, tail, tar, tee, telnet, test, tftp, time, top, touch, tr, traceroute, true, tty, umount, uname, uniq, unix2dos, unzip, uptime, usleep, vi, wc, wget, which, whoami, xargs, yes, zcat

There are also a number of commands which are NOT provided by busybox.

  • ls -al /mnt/HDA_ROOT/usr/bin |grep -v busybox
  • ls -al /mnt/HDA_ROOT/usr/sbin