So, you may have your Android phone full and you don’t know where the space is.
You may have tried Apps for Android but none shows the information in the detail you would like. Linux to the rescue.
First of all you need a cable able to transfer Data. It is a cable that will be connected to your computer, normally with an USB 3.0 cable and to your smartphone, normally with USB-C.
Sometimes phone’s connectors are dirty and don’t allow a stable connection. Your connections should allow a stable connection, otherwise the connection will be interrupted in the middle.
Once you connect the Android smartphone to the computer, unlock the phone and authorize the data connection.
You’ll see that your computer recognizes the phone:
Open the terminal and enter this directory:
cd /run/user/1000/gvfs/
Here you will see your device and the name is very evident.
The usual is to have just one device listed, but if you had several Android devices attached you may want to query first, in order to identify it.
The Android devices use a protocol named Media Transfer Protocol (MTP) when connecting to the USB port, and that’s different on the typical way to access the USB port.
usb-devices | grep "Manufacturer=" -B 3
Run this command to see all the devices connected to the USB.
You may see Manufacturer=SAMSUNG or Manufacturer=OnePlus etc…
The information returned will allow you to identify your device in /run/user/1000/gvfs/
You may get different type of outputs, but if you get:
You can enter the Phone internal storage or the SD Card storage directory:
cd Phone
To see how the space is distributed nicely I recommend you to use the program ncdu if you don’t have you can install it with:
sudo apt install ncdu
Then run ncdu:
ncdu
It will calculate the space…
… and let you know, sorted from more to less, and will allow you to browse the sub-directories with the keyboard arrow keys and enter to get major clarity.
For example, in my case I saw 8.5 GB in the folder Movies on the phone, where I didn’t download any movie, so I checked.
I entered inside by pressing Enter:
So Instagram App was keeping a copy all the videos I uploaded, in total 8.5 GB of my Phone’s space and never releasing them!.
Example for the SD card, where the usage was as expected:
Some additional command-line tools that I use to install and use on my text client Systems. Initially here were not listed commands that are shipped with every Linux, but the additional tools I install in every Workstation or Server.
Apache benchmarks (ab)
To stress a Web Server
atop
A good complement to htop, iftop… monitoring tools
bzip2
Cool compressor better than gzip and that also accepts streams.
cfdisk
Nice tool to work with partitions through modern menus.
ctop
Command line / text based Linux Containers monitoring tool.
Very nice System Stats tool. You can specify individual stats, like a drive.
edac-util
Error reporting utility
edac-util --verbose mc0: 0 Uncorrected Errors with no DIMM info mc0: 0 Corrected Errors with no DIMM info mc0: csrow0: 0 Uncorrected Errors mc0: csrow0: CPU_SrcID#0_MC#0_Chan#0_DIMM#0: 0 Corrected Errors mc0: csrow0: CPU_SrcID#0_MC#0_Chan#1_DIMM#0: 0 Corrected Errors mc0: csrow0: CPU_SrcID#0_MC#0_Chan#2_DIMM#0: 0 Corrected Errors mc1: 0 Uncorrected Errors with no DIMM info mc1: 0 Corrected Errors with no DIMM info mc1: csrow0: 0 Uncorrected Errors mc1: csrow0: CPU_SrcID#0_MC#1_Chan#0_DIMM#0: 0 Corrected Errors mc1: csrow0: CPU_SrcID#0_MC#1_Chan#1_DIMM#0: 0 Corrected Errors mc1: csrow0: CPU_SrcID#0_MC#1_Chan#2_DIMM#0: 0 Corrected Errors mc2: 0 Uncorrected Errors with no DIMM info mc2: 0 Corrected Errors with no DIMM info mc2: csrow0: 0 Uncorrected Errors mc2: csrow0: CPU_SrcID#1_MC#0_Chan#0_DIMM#0: 0 Corrected Errors mc2: csrow0: CPU_SrcID#1_MC#0_Chan#1_DIMM#0: 0 Corrected Errors mc2: csrow0: CPU_SrcID#1_MC#0_Chan#2_DIMM#0: 0 Corrected Errors mc3: 0 Uncorrected Errors with no DIMM info mc3: 0 Corrected Errors with no DIMM info mc3: csrow0: 0 Uncorrected Errors mc3: csrow0: CPU_SrcID#1_MC#1_Chan#0_DIMM#0: 0 Corrected Errors mc3: csrow0: CPU_SrcID#1_MC#1_Chan#1_DIMM#0: 0 Corrected Errors mc3: csrow0: CPU_SrcID#1_MC#1_Chan#2_DIMM#0: 0 Corrected Errors
ethtool
fatrace Reports file access events from all running processes in real time.
flock With flock several processes can have a shared lock at the same time, or be waiting to acquire a write lock. With lslocks from util-linux package you can get a list of these processes.
fstrim
discard unused blocks on a mounted filesystem (local or remote). Is useful for freeing blocks no longer used in ZFS zvols. That can also be achieved by mount -o discard
fuser Show which processes use the named files, sockets, or filesystems.
To set the metrics of all IPV4 routes attached to a given network interface
ifstat
Pretty network interfaces stats.
iftop
To watch metrics for a network interface (or wireless)
iostat
CPU and IO devices stats. I modified some collectors for telegraf and influxdb consumed by grafana for fetching the Write KB/s, Read KB/s, Bandwidth of the Magnetic Spinning drives and SSD during declustered rebuild.
iotop
iperf
Perform network throughput tests
ipmitool
iptables
iscsiadm
java (jre Oracle and OpenJDK)
journalctl
ldap-utils
ldapsearch and the other tools to work with LDAP.
less According to manpages, the opposite of more. :) What it does is display a file, and you can scroll up/down, you can search for patterns… Examples: cat /etc/passwd | less less /etc/passwd # -n doesn’t count the lines, to save time # For a specific Offset less -n +500000000P /var/log/apache2/giant.log # For 50% point less -n +50p /var/log/apache2/giant.log
lrzip /lrztar
Compressor that compresses very efficiently big files, specially GB of of source code.
lrzsz (Zmodem)
An utility to send files to the Server through a terminal.
Very useful when you don’t want to scp or rsftp, for example because that requires MFA (Multi Factor Authentication) to be performed again and you already have a session open.
Moba xTerm for Windows is one of the Terminal clients that accepts Upload/Download of Z-modem
apt install lrzsz
lsblk
List the block devices. Also is handy blkid but you can get this from /dev/disk/by-id/
lynx
Text browser. really handy.
ltrace To trace library calls.
mc
Midnight Commander
md5sum
memtester
Basically for testing Memory.
This will allocate 4GB of RAM and run the test 10 times.
sudo memtester 4096 10
mtr
Network tool mix between ping and traceroute.
mytop
To see in real time queries and slow queries to mysql
ncdu
Show the space used by any directory and subdirectory
nginx (fpm-php) and apache
The webservers
nfs client
nmon
Offers monitoring of different aspects: Network, Disk, Processes…
open-vpn
openssh-server
parted
Partition manipulation
perf
Performance profiler.
Ie: perf top perf stat ls
PHP + curl + mysql (hhvm)
pixz
A parallel, multiprocessor, variant of gzip/bzip2 that can leverage several processors to speed up the compression over files.
If the input looks like a tar archive, it also creates an index of all the files in the archive. This allows the extraction of only a small segment of the tarball, without needing to decompress the entire archive.
postcat
postcat -q ID shows the details of a message in the queue
python-pip and pypy
pv Pipe Viewer – is a terminal-based tool for monitoring the progress of data through a pipeline. It can be inserted into any normal pipeline between two processes to give a visual indication of how quickly data is passing through, how long it has taken, how near to completion it is, and an estimate of how long it will be until completion.
dd if=/dev/urandom | pv | dd of=/dev/null
Output:
1,74MB 0:00:09 [ 198kB/s] [ <=> ]
Probably you’ll prefer to use dd with status=progress option, it’s just a sample.
Utility to work with partitions that can export and import configs through STDIN and STDOUT to automate partitions operations.
slabtop Displays Kernel slab cache information in real time.
smartctl
Utility for dealing with the S.M.A.R.T. features of the disks, knowing errors…
split Split a file into several, based by text lines, or binary: number of bytes per file.
sha512sum
sshfs
Mount a mountpoint on a remote Server by using SSH.
sshpass SSH without typing the password. -f for reading it from a file. sshpass -p “mypassword” ssh -o StrictHostKeyChecking=no root@10.251.35.251
In this sample passing the command ls, so this will be executed, and logout. sshpass -p “mypassword” ssh -o StrictHostKeyChecking=no root@10.251.35.251 ls
sshuttle
A poor’s man VPN through SSH that is available for Linux and Mac OS X.
Tree simply shows the directory hierarchy in a graphical (text mode) way. Useful to see where files and subfolders are.
xxd Make a hexdump or do the reverse
sudo xxd /dev/nvme0n1p1 | less
zcat Just like cat, but for compressed filed.
zcat logs.tar.gz | grep "Error"
zcat logs.tar.gz | less
zless
zram-config
Sergey Davidoff stumbled upon a project called compcache that creates a RAM based block device which acts as a swap disk, but is compressed and stored in memory instead of swap disk (which is slow), allowing very fast I/O and increasing the amount of memory available before the system starts swapping to disk. compcache was later re-written under the name zRam and is now integrated into the Linux kernel.
Whatch allow you to execuate a command and what it (refresh it) at a given intervals, for example every two seconds. For example, if normally I would do:
while [ true ]; do zpool status | head -n10 ; sleep 10; done
while [ true ]; do df -h; sleep 60; done
while [ true ]; do ls -al /tmp | head -n5 ; sleep 2; done
Then I can do:
watch -n10 zpool status
Or:
watch -n60 df -h
Or
watch "ls -al /tmp | head -n5"
For my Dockers, and cloudinit with Ubuntu, my defaults are:
apt update; apt install htop mc ncdu strace git binutils