I had an issue today with ‘df’ and ‘umount’ hanging because of a problem with my Windows (SMB/Samba/CIFS) share. To force unmount I used:
umount -a -t cifs -l
The above command forces all CIFS mounts to unmount immediately.
I had an issue today with ‘df’ and ‘umount’ hanging because of a problem with my Windows (SMB/Samba/CIFS) share. To force unmount I used:
umount -a -t cifs -l
The above command forces all CIFS mounts to unmount immediately.
So I needed to create a file-system to house a handful of archive/backup tarballs (around 40 of them). I created an ext4 file-system with 100 inodes, like this:
# mkfs.ext4 -b 4096 -L airgap -m 0 -N 100 -v /dev/sdc1
Note: 100 inodes isn’t very many! Only supports up to 100 files/folders. Also note that 0% space is reserved for root. If you’re copying the above command make sure you replace /dev/sdc1 with an appropriate partition device.
So today I read How To Set Up VNC Server on Debian 8 which had a section on creating and registering the requisite scripts:
/usr/local/bin/myvncserver (make sure it’s executable with +x):
#!/bin/bash
PATH="$PATH:/usr/bin/"
DISPLAY="1"
DEPTH="16"
GEOMETRY="1024x768"
OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}"
case "$1" in
start)
/usr/bin/vncserver ${OPTIONS}
;;
stop)
/usr/bin/vncserver -kill :${DISPLAY}
;;
restart)
$0 stop
$0 start
;;
esac
exit 0
/lib/systemd/system/myvncserver.service:
[Unit] Description=VNC Server example [Service] Type=forking ExecStart=/usr/local/bin/myvncserver start ExecStop=/usr/local/bin/myvncserver stop ExecReload=/usr/local/bin/myvncserver restart User=vnc [Install] WantedBy=multi-user.target
Then to register and start:
systemctl daemon-reload systemctl enable myvncserver.service systemctl start myvncserver.service
I wrote the below BASH function today. It’s good because it performs super well compared to the alternative commands (which are commented out below above the new commands):
own() {
echo "Taking ownership..."
#chown -R jj5:jj5 .
find . \! -user jj5 -or \! -group jj5 -execdir chown jj5:jj5 "{}" \;
[ "$?" = 0 ] || { echo "Could not take ownership in '$PWD'."; exit 1; }
echo "Fixing directory permissions..."
#find . -type d -execdir chmod u+rwx "{}" \;
find . -type d -and \( \! -perm /u=r -or \! -perm /u=w -or \! -perm /u=x \) -execdir chmod u+rwx "{}" \;
[ "$?" = 0 ] || { echo "Could not fix directory permissions in '$PWD'."; exit 1; }
echo "Fixing file permissions..."
#find . -type f -execdir chmod u+rw "{}" \;
find . -type f -and \( \! -perm /u=r -or \! -perm /u=w \) -execdir chmod u+rw "{}" \;
[ "$?" = 0 ] || { echo "Could not fix file permissions in '$PWD'."; exit 1; }
}
The basic premise is don’t do work which doesn’t need to be done!
Processed: /data/archive Processing started: 2017-05-02 13:29:32 Processing completed: 2017-05-03 11:09:08 Processing time: 21.66h Processed 2,151,351 directories. Processed 13,138,509 files at 168 files/sec. Found 43,139 symlinks. Average number of files per directory is 6.11. Created 10,278,937 hard links. You have 2,859,572 unique files. Your percentage of unique files is 21.76%.
I had an error tailing my web logs, like this:
==> test.jj5.net-error.log <== tail: inotify resources exhausted tail: inotify cannot be used, reverting to polling
I found tail: “inotify resources exhausted” and/or “inotify cannot be used, reverting to polling: Too many open files” which said to edit /etc/sysctl.conf with:
# # 2017-05-03 jj5 - SEE: tail inotify resources exhausted: # https://nefaria.com/2014/08/tail-inotify-resources-exhausted/ # fs.inotify.max_user_watches=1048576
Then to apply the new settings:
# sysctl -p
The $HOSTNAME shell variable on my Mac Book Pro (condor) was “condor.local” but I wanted it to be just “condor”. So I ran:
scutil --set HostName condor
which fixed the problem!
So I migrated my projects from a Debian 8 (Jessie) system to a Debian 9 (Stretch) system. The default NetBeans installed by apt-get install netbeans on Strech was 8.1, and it didn’t include PHP support, so I manually installed NetBeans 8.2.
When I opened my old projects I got an error about an invalid global PHP include path.
So initially I edited ~/.netbeans/8.2/build.properties to change the php.global.include.path settings (to remove /usr/share/php5, because in Stretch I’m running PHP 7.0). But that didn’t work. Each time I ran NetBeans the build.properties file was overwritten with the old php5 directory.
So then I found ~/.netbeans/8.2/config/Preferences/org/netbeans/modules/php/project/general.properties. In there I edited the phpGlobalIncludPath and removed the /usr/share/php5 directory.
Then when I reopened NetBeans all of my projects opened properly without an error! Everything is easy when you know how!
I got this error on my Debian Stretch system:
i915 0000:00:02.0: firmware: failed to load i915/kbl_dmc_ver1_01.bin (-2)
I found instructions to fix the error here.
So I wanted to know the keyboard shortcut to navigate between matching braces in my PHP (and other) code in NetBeans. I’m running NetBeans 8.2. So I searched and found General Editor Features which said “to find a shortcut for a specific command, type the command name in the Search field.” So the Search field they’re talking about is on the Keymap screen under Tools -> Options. After creating myself a custom Keymap Profile based on the NetBeans default settings I searched in the ‘Search:’ box for ‘match’ and found ‘Insertion Point to Matching Brace’ which is Ctrl+OPEN_BRACKET. Everything is easy when you know how!