Monthly Archives: February 2015

openvz compact

It looks like nice job:

#!/bin/bash
# compact.sh by Devon of ByteOnSite for OpenVZ

# SETTINGS

# Config Directory
CFG="/tmp"

# VZ Partition
VZ=`cat $CFG/compact.vzdir 2>/dev/null`
# Run Compact Automatically Every X Runs. Default: 96 runs, if run every 15 minutes this is every 24 hours.
ONXRUNS=`cat $CFG/compact.onxruns 2>/dev/null`
# Minimum Free Space in MB. Will attempt to compact if free space drops below this. Default: automatically generated, 5% free space.
MINFREE=`cat $CFG/compact.minfree 2>/dev/null`
# Email Address
EMAIL=`cat $CFG/compact.email 2>/dev/null`
# Log enabled
LOG=`cat $CFG/compact.logging 2>/dev/null`

# END SETTINGS

# DEFAULT SETTINGS

# Default VZ Partition
if [ ! $VZ ]; then
VZ="/vz"
echo $VZ > $CFG/compact.vzdir
fi
# Default ONXRUNS
if [ ! $ONXRUNS ]; then
ONXRUNS=96
echo $ONXRUNS > $CFG/compact.onxruns
fi
# Default MINFREE (5% of Total Partition)
if [ ! $MINFREE ]; then
MINFREE=$[`df -PBM $VZ | awk 'NR==2 {print $2}' | cut -f1 -dM`/20]
echo $MINFREE > $CFG/compact.minfree
fi
if [ ! $LOG ]; then
LOG=1
echo $LOG > $CFG/compact.logging
fi

# END DEFAULT SETTINGS

# LOGIC

FREESPACE=`df -PBM $VZ | awk 'NR==2 {print $4}' | cut -f1 -dM`

# DEBUG
if [ "$1" = "debug" ]; then
echo "CFG: $CFG"
echo "VZ: $VZ"
echo "FREESPACE: ${FREESPACE}MB"
echo "MINFREE: ${MINFREE}MB"
echo "ONXRUNS: $ONXRUNS"
echo "LOG: $LOG"
echo "EMAIL: $EMAIL"
if [ ! -f "/bin/mail" ]; then
echo "MAILX: NOT FOUND. EMAILS WON'T BE SENT ON WARNING"
fi
exit 0
fi
# END DEBUG

i=`cat $CFG/compact.count`
if [ ! "$i" ] || [ "$i" -eq $ONXRUNS ]; then
i=1
fi
if [ $i -eq 1 ] || [ $FREESPACE -lt $MINFREE ]; then
# Run compact for every VPS
stdout="/dev/null"
if [ $LOG -eq 1 ]; then
stdout="$CFG/compact.log"
fi
for veid in `vzlist -H -o veid`
do
date=`date`
echo "Starting compact on VEID $veid at $date.." >$stdout 2>&1
vzctl compact $veid >$stdout 2>&1
done
# Check disk space again
FREESPACE=`df -PBM $VZ | awk 'NR==2 {print $4}' | cut -f1 -dM`
if [ $FREESPACE -lt $MINFREE ]; then
message="Unable to compact containers enough to reduce free space below MINFREE levels. Free Space: $FREESPACE MB."
echo $message | wall
hostname=`hostname`
if [ $EMAIL ]; then
echo $message | mail -s "Compact failure on $hostname" $EMAIL
fi
fi
fi

# Increase count
i=$[$i+1]
echo $i > $CFG/compact.count

# END LOGIC
exit 0

Centos install FFMPEG, Mencoder, GPAC for 3gp from source

# install dependencies
yum -y install gcc gmake make libcpp libgcc libstdc++ gcc4 gcc4-c++ gcc4-gfortran subversion patch zlib-devel

# get encoding software
cd /usr/local/src

wget http://www3.mplayerhq.hu/MPlayer/releases/codecs/essential-20071007.tar.bz2
wget http://ftp.penguin.cz/pub/users/utx/amr/amrnb-7.0.0.2.tar.bz2
wget http://downloads.sourceforge.net/gpac/gpac-0.4.5.tar.gz

tar xf gpac-0.4.5.tar.gz
tar jxvf amrnb-7.0.0.2.tar.bz2
tar jxvf essential-20071007.tar.bz2

svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer

# install encoding software

mkdir /usr/local/lib/codecs/
mv /usr/local/src/essential-20071007/* /usr/local/lib/codecs/
chmod -R 755 /usr/local/lib/codecs/
mkdir /usr/local/src/tmp
chmod 777 /usr/local/src/tmp
export TMPDIR=/usr/local/src/tmp

cd /usr/local/src/amrnb-7.0.0.2
./configure
make && make install

cd /usr/local/src/mplayer
svn update
./configure
make && make install

cd /usr/local/src/ffmpeg/
./configure –enable-libamr-nb –disable-mmx –enable-nonfree
make && make install

cd ./gpac
./configure
make && make install

# update library links
echo /usr/local/lib > /etc/ld.so.conf.d/ffmpeg.conf
ldconfig

vim: It requires “if_lua” enabled Vim(7.3.885 or above).

hg clone https://vim.googlecode.com/hg/ vim
cd vim
./lua.sh

vi lua.sh:
#!/bin/bash
# on centos minimal

yum install -y gcc
yum install -y make
yum install -y ncurses-devel
yum install -y lua lua-devel
yum install -y ruby ruby-devel
yum install -y python python-devel
yum install -y perl perl-devel

# vim7.3
./configure --disable-selinux \
--enable-luainterp \
--enable-perlinterp \
--enable-pythoninterp \
--enable-python3interp \
--enable-tclinterp \
--enable-rubyinterp \
--enable-multibyte \
--disable-gui \
--with-features=huge \
[email protected]

make
make install

chroot sftp

vi /etc/ssh/sshd_config
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
Match User someuser
ChrootDirectory /var/www/someuser
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no

chown root:root /var/www/someuser
chmod 755 /var/www/someuser
usermod -s “/usr/libexec/openssh/sftp-server” someuser