Note: You are viewing an old version of this page. View the current version.

http://friends.cyberleo.net/cyberleo/pub-ssh.txt

Teams

Copyright

Orders

Tasks

Bugs

Notes

Scrapbin

Machines

Projects

Copy dependent libraries into a chroot jail:

/bin/sh -c 'fifo="/tmp/ldd-$$"; mkfifo -m 600 ${fifo}; ldd /usr/sbin/sshd | cut -f2 | cut -d" " -f3 | tee ${fifo} | tail -n $(( $( cat ${fifo} | wc -l ) - 1 )); rm -f ${fifo}' | cpio --pass-through --make-directories /root/chroot/sshd/

My own hashfile format: hashery.sh

Deduplicate file-level: dedupe.sh

# Convert sha1(1)-compatible into cfv's sha1sum-format
sed -e 's#^SHA1 (\./\(.*\)) = \(.*\)$#\2 *\1#g' shas

# Convert cfv's sha1sum-format into sha1(1)-compatible
sed -e 's#^\([0-9A-Fa-f]\{40\}\) [* ]\(.*\)$#SHA1 (./\2) = \1#g' stuff.sha1
# Convert a list of strings into a sed script to filter said strings from another file
# Developed to filter a sha1 hashlist of all symlink-type files, which were computed separately
sed -e 's/[][\.*^$/]/\\&/g; s/^/\//; s/$/\/d/'

FreeBSD misdetects the amount of installed memory on a K7S5A Pro board with 1GB PC3200. Force it:

hw.physmem="1073741824"

Commonly used mkisofs options

mkisofs            # Command
 -v                # Verbose
 -gui              # Format output messages for use by GUI tools
 -iso-level 4      # ISO-9660:1999
 -D                # No deep directory relocation for ISO-9660:1999
 -J                # Generate Joliet records for Win32 systems
 -R                # Generate SUSP/RR records, using the Rock Ridge protocol, for Unix systems
 -r                # As -R, but normalizes certain values (uid/gid are 0, all entries are ugo+r-w, etc)
 -no-pad           # Do not pad ISO to 150 sectors (useful for DVDisaster or uzip images)
 -p CyberLeo       # Specify string for 'Preparer' volume header field
 -V FS-Label       # Specify string for 'Volid' (label) volume header field
 -o <file>.iso     # Name of file to hold resultant image
 <sourcedir> ...   # One or more directories whose contents will be shoved into the image root

Rubygems will no longer fall back to installing into ~/.gem if running as non-root. Provide --user-install on the gem command line to fix.

diskinfo(8)

Random

This'll work for zfs-fuse on linux. FreeBSD needs camcontrol or atacontrol instead of hdparm.

# Standby pool
sudo zpool status data | sed -e '/disk\/by/!d; s/^\W*//; s/  .*$//; s/^/\/dev\//' | sudo xargs /sbin/hdparm -y
# Check pool drive states
sudo zpool status data | sed -e '/disk\/by/!d; s/^\W*//; s/  .*$//; s/^/\/dev\//' | sudo xargs /sbin/hdparm -C
# Wake pool
sudo zpool status data | sed -e '/disk\/by/!d; s/^\W*//; s/  .*$//; s/^/\/dev\//' | sudo sh -c 'while read dev; do dd iflag=direct if="${dev}" of=/dev/null bs=512 count=1 & done; wait'

This prints out temperatures

while sleep 5
do
  ( sensors -u | sed -e '/temp[0-9]*_input:/!d; s/^.*: //'
    nvidia-settings -tq [gpu:0]/GPUCoreTemp -q [fan:0]/GPUCurrentFanSpeed -q [gpu:1]/GPUCoreTemp -q [fan:1]/GPUCurrentFanSpeed 2>/dev/null
  ) | while read cpu0
  do
    read nb0
    read gpu0
    read fan0
    read gpu1
    read fan1
    printf "%s: CPU: %0.0fc NB: %0.0fc G0: %0.0fc %u%% G1: %0.0fc %u%%\n" "$(date +%H:%M:%S)" "${cpu0}" "${nb0}" "${gpu0}" "${fan0}" "${gpu1}" "${fan1}"
  done
done

This seems useful
/usr/local/etc/portmaster.rc

# Log portmaster actions
PM_LOG=/var/log/portmaster.log

# Just keep going if the backup package operation failed (nvidia-driver likes to molest xorg-server)
PM_IGNORE_FAILED_BACKUP_PACKAGE=pm_ignore_failed_backup_package

# -D - Never delete distfiles; never ask in the middle of a build either
DONT_SCRUB_DISTFILES=Dopt

# -g - Always create a package of what was just built
MAKE_PACKAGE=gopt

# -w - Save old shared libraries during upgrade
SAVE_SHARED=wopt

Display a graph of power-of-two sizes needed to hold files:

# FreeBSD
find old -type f -exec stat -f %z {} + | awk 'function f(x){e=0;while(2^e<x){e++};return e};{print 2^f($1)}' | sort -n | uniq -c
# Linux
find old -type f -exec stat -c %s {} + | awk 'function f(x){e=0;while(2^e<x){e++};return e};{print 2^f($1)}' | sort -n | uniq -c

This page is getting a little too big. Here's a post-update git hook to force checkout when you push to the current branch. Beware that this will destroy uncommitted local changes!

#!/bin/sh

export GIT_DIR="$(readlink -f "${GIT_DIR}")"
export GIT_WORK_TREE="$(readlink -f "..")"

# If the currently checked out branch has been updated, force-checkout
branch=$(git branch | sed -e '/^\* /!d; s/^\* //')
for ref in "${@}"; do [ "${branch}" = "${ref##*/}" ] && break; unset ref; done
[ "${ref}" ] && (
  echo "Current branch updated; forcing checkout"
  git checkout -f "${branch}"
  cd "${GIT_WORK_TREE}" && git clean -df
)

exec git update-server-info
module Enumerable
  def each_with_progress(io = $stderr)
    return self.each unless block_given?
    count = self.count
    fmtlen = self.count.to_s.length
    fmt = "\r %u%% [%0#{fmtlen}u/%0#{fmtlen}u] \033[K"
    self.each_with_index do |item, index|
      io.printf(fmt, 100 * ( ( index + 0.0 ) / count ), index, count)
      yield item
      io.printf(fmt, 100 * ( ( index + 1.0 ) / count ), index + 1, count)
    end
    io.puts ""
  end
end

TinyFugue

https://the-b.org/Tinyfugue_log_rotation# http://ingwar.eu.org/en/tf/download.php http://www.ingwar.eu.org/en/tf/instrukcja.php http://northstar-www.dartmouth.edu/doc/tf/topics/special_variables.html#time_format

Other

Lyrics

Disk Serial Numbers

den-subnet