slitaz-forge annotate tank/taztank @ rev 38

boot: Update to new style and layout
author Christophe Lincoln <pankso@slitaz.org>
date Mon Mar 28 15:10:53 2011 +0200 (2011-03-28)
parents 5dbbf86c3bc0
children 482a0e54ae16
rev   line source
slaxemulator@11 1 #!/bin/sh
slaxemulator@11 2 # Taztank - Admin Tank, backup, update and give stats.
slaxemulator@11 3 # (C) 2011 SliTaz - GNU General Public License.
slaxemulator@11 4 # Author: Christophe Lincoln <pankso@slitaz.org>
slaxemulator@11 5 #
slaxemulator@11 6
slaxemulator@11 7 REPOS="/home/slitaz/repos"
slaxemulator@11 8 WWW="/home/slitaz/www"
slaxemulator@11 9 VHOST="$WWW/tank"
slaxemulator@11 10 BACKUPS="/home/backups"
slaxemulator@11 11
slaxemulator@11 12 usage() {
slaxemulator@11 13 echo -e "\nUsage: `basename $0` [command]
slaxemulator@11 14 Commands:
slaxemulator@11 15 stats Display some Tank stats
slaxemulator@11 16 backup Backup files and MySQL DB
paul@35 17 chroot Move a user into a new chroot location
slaxemulator@11 18 up-web Update http://tank.slitaz.org/
slaxemulator@11 19 up-people Update http://people.slitaz.org/
slaxemulator@11 20 up-web-stats Update Awstats statistics (run by cron)
paul@35 21 clean-labs Clean Redmine Labs (no longer on Tank)\n"
slaxemulator@11 22 }
slaxemulator@11 23
slaxemulator@11 24 case "$1" in
slaxemulator@11 25 stats)
slaxemulator@11 26 # Report some stats
slaxemulator@11 27 clear
slaxemulator@11 28 cat << EOF
slaxemulator@11 29
slaxemulator@11 30 Connected user
slaxemulator@11 31 --------------
slaxemulator@11 32 `who`
slaxemulator@11 33
slaxemulator@11 34 System usage
slaxemulator@11 35 ------------
slaxemulator@11 36 `df -h`
slaxemulator@11 37
slaxemulator@11 38 `free`
slaxemulator@11 39
slaxemulator@11 40 EOF
slaxemulator@11 41 ;;
slaxemulator@11 42 chroot)
slaxemulator@11 43 if [ -s $2/bin/sh ] && grep -qs $3: /etc/password ; then
slaxemulator@11 44 grep -q ^chroot /etc/busybox.conf ||
slaxemulator@11 45 echo 'chroot = ssx root.root' >> /etc/busybox.conf
slaxemulator@11 46 [ -s /bin/chrootsh ] || cat > /bin/chrootsh << EOF
slaxemulator@11 47 #!/bin/sh
slaxemulator@11 48
slaxemulator@11 49 #case " \$@ " in
slaxemulator@11 50 #*rsync*) exec /bin/sh "\$@" ;;
slaxemulator@11 51 #esac
slaxemulator@11 52
slaxemulator@11 53 case "\$USER" in
slaxemulator@11 54 pankso) exec /bin/sh "\$@" ;;
slaxemulator@11 55 *) exec /usr/sbin/chroot $2 /bin/chrootsh "\$@" ;;
slaxemulator@11 56 esac
slaxemulator@11 57 EOF
slaxemulator@11 58 [ -s $2/bin/chrootsh ] || cat > $2/bin/chrootsh << EOF
slaxemulator@11 59 #!/bin/sh
slaxemulator@11 60
slaxemulator@11 61 export SHELL='/bin/sh'
slaxemulator@11 62 cd \$HOME
slaxemulator@11 63 . /etc/profile
slaxemulator@11 64 exec /bin/sh "\$@"
slaxemulator@11 65 EOF
slaxemulator@11 66 chmod +x /bin/chrootsh $2/bin/chrootsh
slaxemulator@11 67 base=$(awk -F: "/^$3:/ { print \$6 }" /etc/passwd)
slaxemulator@11 68 target=$base
slaxemulator@11 69 while [ -L $target ]; do
slaxemulator@11 70 target=$(readlink $target)
slaxemulator@11 71 done
slaxemulator@11 72 mv $target $2/$base
slaxemulator@11 73 [ -L $base ] && rm -f $base
slaxemulator@11 74 ln -s $2/$base $base
slaxemulator@11 75 if ! grep -q ^$3: $2/etc/passwd ; then
slaxemulator@11 76 grep ^$3: /etc/passwd >> $2/etc/passwd
slaxemulator@11 77 grep ^$3: /etc/shadow >> $2/etc/shadow fi
slaxemulator@11 78 fi
slaxemulator@11 79 else
slaxemulator@11 80 cat << EOF
slaxemulator@11 81 Usage: $0 $1 newchroot user
slaxemulator@11 82 Move a user in a new chroot location
slaxemulator@11 83 EOF
slaxemulator@11 84 fi
slaxemulator@11 85 ;;
slaxemulator@11 86 backup)
slaxemulator@11 87 # Backup config files and SQL db.
slaxemulator@11 88 echo "Not yet implemented..." ;;
slaxemulator@11 89 up-web)
slaxemulator@11 90 # Update Tank web interface: http://tank.slitaz.org/
slaxemulator@11 91 echo -e "\nUpdating: tank.slitaz.org..."
slaxemulator@11 92 cd $REPOS/tank
slaxemulator@11 93 hg update
slaxemulator@11 94 rm -rf $VHOST/*.* $VHOST/pics/website
slaxemulator@11 95 cp -a web/* $VHOST ;;
slaxemulator@11 96 up-people)
slaxemulator@11 97 # Update People web interface: http://people.slitaz.org/
slaxemulator@11 98 echo -e "\nUpdating: people.slitaz.org..."
slaxemulator@11 99 cd $REPOS/slitaz-forge
slaxemulator@11 100 hg update
slaxemulator@11 101 rm -rf $WWW/people/*
slaxemulator@11 102 cp -a people/* $WWW/people ;;
slaxemulator@11 103 up-web-stats)
paul@35 104 echo -e "\nUpdating all awstats databases...\n"
slaxemulator@11 105 for vh in www boot pkgs
slaxemulator@11 106 do
slaxemulator@11 107 /var/www/cgi-bin/awstats.pl -config=$vh.slitaz.org
slaxemulator@11 108 done ;;
slaxemulator@11 109 clean-labs)
paul@35 110 # Redmin needs some time help
slaxemulator@11 111 /etc/init.d/lighttpd stop
slaxemulator@11 112 /etc/init.d/mysql stop
slaxemulator@11 113 killall ruby
slaxemulator@11 114 rm -rf labs/tmp/sessions
slaxemulator@11 115 mkdir -p labs/tmp/sessions
slaxemulator@11 116 chown www.www labs/tmp/sessions
slaxemulator@11 117 /etc/init.d/mysql start
slaxemulator@11 118 /etc/init.d/lighttpd start ;;
slaxemulator@11 119 *)
slaxemulator@11 120 usage ;;
slaxemulator@11 121 esac
slaxemulator@11 122 exit 0