slitaz-forge annotate tank/taztank @ rev 46

Update usage in taztank script.
author Christopher Rogers <slaxemulator@gmail.com>
date Sun Apr 03 00:01:32 2011 +0000 (2011-04-03)
parents 1e164894a3ed
children f80f311578f7
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@46 17 stats|-s Display some Tank stats
slaxemulator@46 18 backup|-b Backup files and MySQL DB
slaxemulator@46 19 chroot|-c Move a user into a new chroot location
slaxemulator@46 20 up-www|-uw Update website http://www.slitaz.org/
slaxemulator@46 21 up-tank|-ut Update http://tank.slitaz.org/
slaxemulator@46 22 up-people|-up Update http://people.slitaz.org/
slaxemulator@46 23 up-boot|-ub Update http://boot.slitaz.org/
slaxemulator@46 24 up-stats|-us Update Awstats statistics (run by cron)
slaxemulator@46 25 adduser|-au Add user on tank\n"
slaxemulator@11 26 }
slaxemulator@11 27
slaxemulator@11 28 case "$1" in
pankso@43 29 stats|-s)
slaxemulator@11 30 # Report some stats
slaxemulator@11 31 clear
slaxemulator@11 32 cat << EOF
slaxemulator@11 33
slaxemulator@11 34 Connected user
slaxemulator@11 35 --------------
slaxemulator@11 36 `who`
slaxemulator@11 37
slaxemulator@11 38 System usage
slaxemulator@11 39 ------------
slaxemulator@11 40 `df -h`
slaxemulator@11 41
slaxemulator@11 42 `free`
slaxemulator@11 43
slaxemulator@11 44 EOF
slaxemulator@11 45 ;;
pankso@43 46 chroot|-c)
pankso@44 47 # Move a user into a new chroot location
slaxemulator@11 48 if [ -s $2/bin/sh ] && grep -qs $3: /etc/password ; then
slaxemulator@11 49 grep -q ^chroot /etc/busybox.conf ||
slaxemulator@11 50 echo 'chroot = ssx root.root' >> /etc/busybox.conf
slaxemulator@11 51 [ -s /bin/chrootsh ] || cat > /bin/chrootsh << EOF
slaxemulator@11 52 #!/bin/sh
slaxemulator@11 53
slaxemulator@11 54 #case " \$@ " in
slaxemulator@11 55 #*rsync*) exec /bin/sh "\$@" ;;
slaxemulator@11 56 #esac
slaxemulator@11 57
slaxemulator@11 58 case "\$USER" in
slaxemulator@11 59 pankso) exec /bin/sh "\$@" ;;
slaxemulator@11 60 *) exec /usr/sbin/chroot $2 /bin/chrootsh "\$@" ;;
slaxemulator@11 61 esac
slaxemulator@11 62 EOF
slaxemulator@11 63 [ -s $2/bin/chrootsh ] || cat > $2/bin/chrootsh << EOF
slaxemulator@11 64 #!/bin/sh
slaxemulator@11 65
slaxemulator@11 66 export SHELL='/bin/sh'
slaxemulator@11 67 cd \$HOME
slaxemulator@11 68 . /etc/profile
slaxemulator@11 69 exec /bin/sh "\$@"
slaxemulator@11 70 EOF
slaxemulator@11 71 chmod +x /bin/chrootsh $2/bin/chrootsh
slaxemulator@11 72 base=$(awk -F: "/^$3:/ { print \$6 }" /etc/passwd)
slaxemulator@11 73 target=$base
slaxemulator@11 74 while [ -L $target ]; do
slaxemulator@11 75 target=$(readlink $target)
slaxemulator@11 76 done
slaxemulator@11 77 mv $target $2/$base
slaxemulator@11 78 [ -L $base ] && rm -f $base
slaxemulator@11 79 ln -s $2/$base $base
slaxemulator@11 80 if ! grep -q ^$3: $2/etc/passwd ; then
slaxemulator@11 81 grep ^$3: /etc/passwd >> $2/etc/passwd
slaxemulator@11 82 grep ^$3: /etc/shadow >> $2/etc/shadow fi
slaxemulator@11 83 fi
slaxemulator@11 84 else
slaxemulator@11 85 cat << EOF
slaxemulator@11 86 Usage: $0 $1 newchroot user
slaxemulator@11 87 Move a user in a new chroot location
slaxemulator@11 88 EOF
slaxemulator@11 89 fi
slaxemulator@11 90 ;;
pankso@43 91 backup|-b)
slaxemulator@11 92 # Backup config files and SQL db.
slaxemulator@11 93 echo "Not yet implemented..." ;;
pankso@43 94 update-www|-uw)
pankso@43 95 # Update website from repo.
pankso@44 96 echo -e "\nUpdating: www.slitaz.org..."
pankso@43 97 cd $WEBSITE && hg pull && hg update
pankso@43 98 echo "" ;;
pankso@43 99 up-tank|-ut)
slaxemulator@11 100 # Update Tank web interface: http://tank.slitaz.org/
slaxemulator@11 101 echo -e "\nUpdating: tank.slitaz.org..."
pankso@41 102 cd $REPOS/slitaz-forge
slaxemulator@11 103 hg update
pankso@41 104 rm -rf $VHOST/*.* $VHOST/pics/website $VHOST/images
pankso@44 105 cp -a tank/web/* $VHOST
pankso@44 106 echo "" ;;
pankso@43 107 up-people|-up)
slaxemulator@11 108 # Update People web interface: http://people.slitaz.org/
slaxemulator@11 109 echo -e "\nUpdating: people.slitaz.org..."
slaxemulator@11 110 cd $REPOS/slitaz-forge
slaxemulator@11 111 hg update
slaxemulator@11 112 rm -rf $WWW/people/*
pankso@44 113 cp -a people/* $WWW/people
pankso@44 114 echo "" ;;
pankso@43 115 up-boot|-ub)
pankso@41 116 # Update Web Boot interface: http://boot.slitaz.org/
pankso@41 117 echo -e "\nUpdating: boot.slitaz.org..."
pankso@41 118 cd $REPOS/slitaz-forge
pankso@41 119 hg update
pankso@41 120 rm -rf $WWW/boot/*
pankso@44 121 cp -a boot/* $WWW/boot
pankso@44 122 echo "" ;;
pankso@43 123 up-stats|-us)
pankso@44 124 echo -e "\nUpdating all awstats databases..."
slaxemulator@11 125 for vh in www boot pkgs
slaxemulator@11 126 do
slaxemulator@11 127 /var/www/cgi-bin/awstats.pl -config=$vh.slitaz.org
pankso@44 128 done
pankso@44 129 echo "" ;;
pankso@45 130 adduser|-au)
pankso@45 131 # On Tank /etc/skel is empty to let taktank handle default user
pankso@45 132 # files.
pankso@45 133 echo ""
pankso@45 134 if [ -n "$2" ]; then
pankso@45 135 user=$2
pankso@45 136 else
pankso@45 137 echo -n "User name: " && read user
pankso@45 138 fi
pankso@45 139 if [ -d /home/$user ]; then
pankso@45 140 echo -e "User $user already exist...\n" && exit 1
pankso@45 141 fi
pankso@45 142 echo "Adding user: $user"
pankso@45 143 adduser $user
pankso@45 144 # HG access
pankso@45 145 echo -n "Hg password: " && read passwd
pankso@45 146 echo "$user:$passwd" >> /etc/lighttpd/plain.passwd
pankso@45 147 # README
pankso@45 148 echo -n "Creating default user files... "
pankso@45 149 cat > /home/$user/README << EOF
pankso@45 150 Welcome to Tank!
pankso@45 151 ================================================================================
pankso@45 152
pankso@45 153 Your Public directory URL is: http://people.slitaz.org/~$USER/
pankso@45 154
pankso@45 155 Please complet your public profile in ~/Public/profile.php and feel free
pankso@45 156 to use the service for your needs, if any thing goes wrong or is missing
pankso@45 157 please express your self :-)
pankso@45 158
pankso@45 159 EOF
pankso@45 160 # Public profile
pankso@45 161 mkdir -p /home/$user/Public
pankso@45 162 cat > /home/$user/Public/profile.php << EOF
pankso@45 163 <?php
pankso@45 164
pankso@45 165 // Your custom SliTaz profile at http://people.slitaz.org/. This file must
pankso@45 166 // be located at ~/Public/profile.php. You must at least provide your real
pankso@45 167 // name and you can use the $wall variable for a personnal message.
pankso@45 168
pankso@45 169 $name = "Real Name";
pankso@45 170 $location = "";
pankso@45 171 $scn_user = "";
pankso@45 172 $skills = "";
pankso@45 173 $wall = "";
pankso@45 174
pankso@45 175 ?>
pankso@45 176 EOF
pankso@45 177 # Shell profile
pankso@45 178 cat > /home/$user/.profile << EOF
pankso@45 179 # ~/.profile: Executed by Bourne-compatible login SHells.
pankso@45 180 #
pankso@45 181 EOF
pankso@45 182 echo -e "Done\n" ;;
slaxemulator@11 183 *)
slaxemulator@11 184 usage ;;
slaxemulator@11 185 esac
slaxemulator@11 186 exit 0