From: Ian Kelling Date: Thu, 5 Jan 2017 16:30:18 +0000 (-0800) Subject: various minor improvements X-Git-Url: https://iankelling.org/git/?p=distro-setup;a=commitdiff_plain;h=518131cef6f11e53340287bb28e4bd46c8c72c31 various minor improvements --- diff --git a/btrbk-run b/btrbk-run index c226997..485c7f5 100755 --- a/btrbk-run +++ b/btrbk-run @@ -38,6 +38,7 @@ while true; do case $1 in -c) conf_only=true; shift ;; -n) dry_run=true; dry_run_arg=-n; shift ;; + # btrbk arg: Resume only. Skips snapshot creation. -r) resume_arg=-r; shift ;; -t) IFS=, targets=($2); shift 2 ;; -h|--help) usage ;; @@ -52,7 +53,7 @@ read primary <<<"$@" rsync-dirs() { local host=$1 local path=$2 - rsync $dry_run_arg -ahi --relative --delete "$path" "root@$host:/" + m rsync $dry_run_arg -ahi --relative --delete "$path" "root@$host:/" } vol-conf() { @@ -70,15 +71,26 @@ tg-conf() { target send-receive ssh://$tg$vol/btrbk EOF } - +m() { printf "%s\n" "$*"; "$@"; } if ! which btrbk &>/dev/null; then echo "$0: error: no btrbk binary found" fi +if [[ $- == *i* ]]; then + progress_arg=--progress +fi + cat >/etc/btrbk.conf <<'EOF' ssh_identity /root/.ssh/id_rsa +# Just a guess that local7 is a good facility to pick. +# It's a bit odd that the transaction log has to be logged to +# a file or syslog, while other output is sent to std out. +# The man does not mention a way for them to be together, but +# I dunno if setting a log level like warn might also output +# transaction info. +transaction_syslog local7 # so we only run one at a time lockfile /var/lock/btrbk.lock @@ -106,9 +118,10 @@ EOF # note q is owned by root:1000 # note p is owned 1000:1000 and chmod 700 -mountpoints=(/q) -if awk '{print $2}' /etc/fstab | grep -xF /p &>/dev/null; then - mountpoints+=(/p) +mountpoints=(/a) +qmnt=/q +if awk '{print $2}' /etc/fstab | grep -xF $qmnt &>/dev/null; then + mountpoints+=($qmnt) fi # if our mountpoints are from stale snapshots, @@ -174,11 +187,11 @@ if $conf_only; then fi if $dry_run; then - btrbk -n $resume_arg run + m btrbk -n $resume_arg run else # -q and just using the syslog option seemed nice, # but it doesn't show when a send has a parent and when it doesn't. - btrbk $resume_arg run + m btrbk $progress_arg $resume_arg run fi # if we have /p, rsync to targets without /p @@ -198,7 +211,7 @@ if mountpoint /p >/dev/null; then fi if ! $dry_run; then - $script_dir/mount-latest-remote ${targets[@]} + m $script_dir/mount-latest-remote ${targets[@]} fi diff --git a/check-subvol-stale b/check-subvol-stale index 1451844..f278188 100644 --- a/check-subvol-stale +++ b/check-subvol-stale @@ -13,7 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. - +# usage: $0 SUBVOL_MOUNTPOINT... # if latest subvols $@ are not mounted, exit 1, print message, and touch /nocow/btrfs-stale/$subvol [[ $EUID == 0 ]] || exec sudo -E "$BASH_SOURCE" "$@" @@ -50,7 +50,7 @@ for d; do continue fi stale=true - if btrfs sub show $d|sed '0,/^\t*Snapshot(s):/d;s/^\s*//' | \ + if btrfs sub show $d 2>/dev/null | sed '0,/^\t*Snapshot(s):/d;s/^\s*//' | \ grep -xF btrbk/$last_snap &>/dev/null; then stale=false else diff --git a/desktop-20-autostart.sh b/desktop-20-autostart.sh index e116960..a86864a 100755 --- a/desktop-20-autostart.sh +++ b/desktop-20-autostart.sh @@ -15,8 +15,9 @@ # first 2 alternatives showed under ubuntu 14.04, second 2 under arch at 11/2015 -right_monitor_rotation=left if [[ $1 ]]; then + right_monitor_rotation=left +else right_monitor_rotation=normal fi diff --git a/distro-end b/distro-end index 44be816..8034fb9 100755 --- a/distro-end +++ b/distro-end @@ -32,6 +32,7 @@ spa() { # simple package add simple_packages+=($@) } + distro=$(distro-name) pending_reboot=false @@ -59,30 +60,26 @@ case $HOSTNAME in # universal packages # swh-plugins is for karaoke pulsaudio filter. # mutagen for pithos - # lib32stdc++6/default-jdk for android studio - # android site says it needs a bunch of packages for ubuntu, - # but I googled for debian, and someone says you just need one, plus the - # jdk - # https://pid7007blog.blogspot.com/2015/07/installing-android-studio-in-debian-8.html - # see w.org for more android studio details - # simple_packages+=( apache2 bwm-ng chromium - default-jdk + debconf-doc duplicity + eclipse evince fdupes filelight + gcc-doc gdb gitk goaccess gnome-screenshot + i3lock jq locate - lib32stdc++6 manpages + manpages-dev meld nmap offlineimap @@ -93,7 +90,6 @@ case $HOSTNAME in pianobar pidgin python3-mutagen - slock squashfs-tools swh-plugins tcpdump @@ -258,6 +254,19 @@ esac ########### end section including li/lj ############### + +## android studio setup +# this contains the setting for android sdk to point to +# /a/opt/androidsdk, which is asked upon first run +lnf /a/opt/.AndroidStudio2.2 ~ +# android site says it needs a bunch of packages for ubuntu, +# but I googled for debian, and someone says you just need lib32stdc++6 plus the +# jdk +# https://pid7007blog.blogspot.com/2015/07/installing-android-studio-in-debian-8.html +# see w.org for more android studio details +spa lib32stdc++6 default-jdk + + if [[ $HOSTNAME == frodo ]]; then case $distro in ubunut|debian) @@ -320,7 +329,6 @@ esac ####### misc packages ########### - if [[ $HOSTNAME == treetowl ]]; then case $distro in debian|ubuntu) @@ -339,29 +347,38 @@ EOF # some reason it doesn't seem to start automatically anyways pi-nostart transmission-daemon + # # config file documented here, and it's the same config # for daemon vs client, so it's documented in the gui. # https://trac.transmissionbt.com/wiki/EditConfigFiles#Options + # + # I originaly setup rpc-whitelist, but after using + # routing to a network namespace, it doesn't see the + # real source address, so it's disabled. + # todo: setup a password. s ruby <<'EOF' require 'json' p = '/etc/transmission-daemon/settings.json' File.write(p, JSON.pretty_generate(JSON.parse(File.read(p)).merge({ -'rpc-whitelist' => '127.0.0.1,192.168.1.*', +'rpc-whitelist-enabled' => false, 'rpc-authentication-required' => false, -'incomplete-dir' => '/i/k/partial-torrents', +'incomplete-dir' => '/k/partial-torrents', +'incomplete-dir-enabled' => true, 'download-dir' => '/i/k/torrents', "speed-limit-up" => 700, "speed-limit-up-enabled" => true, +"peer-port" => 61486, "ratio-limit" => 1.4000, -"ratio-limit-enabled" => true, +"ratio-limit-enabled" => false, +"pidfile": "/var/lib/transmission-daemon/transmission-daemon.pid", })) + "\n") EOF - sgo transmission-daemon - ;; - arch) - # todo, setup it's config file & daemon - pi transmission-cli + + # make sure its not enabled, not sure if this is needed + ser disable transmission-daemon + sgo transmission-daemon-nn ;; + # todo: others unknown esac fi @@ -439,13 +456,14 @@ done case $distro in debian|ubuntu) - pi-nostart openvpn + # suggests because we want the resolvconf package. + # todo: check other distros to make sure it's installed + pi-nostart --install-suggests openvpn # pi-nostart this doesnt seem to be good enough? ser disable openvpn@client ser disable openvpn ;; - # suggests because we want the resolvconf package - *) pi --install-suggests openvpn;; + *) pi openvpn;; esac pi wget @@ -661,8 +679,33 @@ case $distro in spa bitcoin-qt/unstable fi ;; + s cp /a/opt/bitcoin/contrib/init/bitcoind.service /usr/lib/systemd/system + ser daemon-reload + sgo bitcoind + + s mkdir -p $dir + s touch $f + s chmod -R o-rwx $dir + s chown -R bitcoin:bitcoin $dir + s dd of=$f </dev/null; then + if ! mountpoint $dir &>/dev/null; then mkdir -p $dir e mount $dir fi @@ -78,18 +78,18 @@ ret=0 first_root_crypt=$(awk '$2 == "/" {print $1}' /etc/mtab) tu /etc/fstab </dev/null; then continue @@ -101,7 +101,8 @@ for vol in q p; do while true; do new_roots=() for r in ${roots[@]}; do - # /q/a /a none bind 0 0 + # example + # /q/p /p none bind 0 0 new_roots+=($(sed -rn "s#^$r/\S+\s+(\S+)\s+none\s+bind\s.*#\1#p" /etc/fstab)) done (( ${#new_roots} )) || break @@ -196,10 +197,8 @@ EOF cryptdisks_start crypt_dev_$dev fi done -else - tu /etc/fstab <<'EOF' -/q/i /i none bind,noauto 0 0 -EOF + # note, could do an else here and have some kind of mount for /i + # on other hosts. fi exit $ret