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 |