30 lines
826 B
Plaintext
30 lines
826 B
Plaintext
|
#!/bin/sh
|
||
|
# analyze free space, preferring tmpfs over really many gigaz
|
||
|
|
||
|
# hope there aren't spaces in RM's $HOME are they?
|
||
|
DIRS="$TMP $TMPDIR $HOME/hasher /tmp /var/tmp"
|
||
|
MINSIZE=1048576 # face control criterion
|
||
|
|
||
|
# pick existing, writeable, >1Gb free space dirs
|
||
|
# rank them wrt type: tmpfs > realfs > rootfs
|
||
|
choose_tmpdir() {
|
||
|
for i in $DIRS; do
|
||
|
[ -d "$i" -a -w "$i" ] || continue
|
||
|
echo -n "$i "
|
||
|
df -Tl "$i" | tail -1
|
||
|
done \
|
||
|
| sort -unk6 \
|
||
|
| while read dir dev fstype size used free percent mnt; do
|
||
|
[ "$free" -gt "$MINSIZE" ] || continue
|
||
|
[ "$fstype" = "tmpfs" ] && { echo "2 $dir $free"; continue; }
|
||
|
[ "$mnt" = "/" ] && { echo "0 $dir $free"; continue; }
|
||
|
echo "1 $dir $free"
|
||
|
done \
|
||
|
| sort -n \
|
||
|
| tail -1 \
|
||
|
| cut -f2 -d' '
|
||
|
}
|
||
|
|
||
|
DIR="`choose_tmpdir`"
|
||
|
mktemp -d "${1:-tmpdir}.XXXXXXXXXX" --tmpdir="${DIR:-..}"
|