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