Archive for the ‘Linux’ Category

Backup newly modified files

My server backups over 20GB files everyday. It takes hours to tar those huge amount of files. I think this kind of stupid task is harmful to hard driver. One more stupid issue is that over 99% of files are not modified since last backup. So, here is the command to let me backup newly modified files only.

tar -zcvf /save/to/file.tar /filePath/* –newer-mtime ‘1 days ago’

You may want to change “1 days ago” to 2 days, or 5 days.

By the way, it’s better to do full backup monthly or bi-monthly. :)

  • Share/Save/Bookmark

Linux – delete files which modified time older than 7 days

find /filePath/* -mtime +7 -delete

or

find /filePath/* -mtime +7 -exec rm {} \;

Where “-mtime” parameter will look for file modified time older than “+7″ days. You may want to change “+7″ to longer days, for example “+30″ days, “+90″ days

“-exec” parameter allows you to call another command. The “{} \;” is required at the end.

  • Share/Save/Bookmark

ffmpeg – capture screenshot from a video file

1
ffmpeg -i /my_video_file_dir/video.flv -y -f image2 -ss 8 -sameq -t 0.001 -s 320*240 /image_dir/screenshot.jpg

320*240 : image dimension is 320 pixels width and 240 pixels height
-ss 8 : screenshot will be taken at 8 second after video starts.

  • Share/Save/Bookmark

Linux ffmpeg audio conversion – MP3 to FLV

Want to play MP3 files on your website? The best and most common way is using flash video file which compress audio and video better for internet use like YouTube. Here is the instruction I used ffmpeg to convert MP3 to FLV file.

ffmpeg – a program that allow convert audio in numerous formats.

Installing ffmpeg
edit / etc/yum.repos.d/CentOS-Base.repo , add following lines at the end of file

1
2
3
4
[dag]
name=Dag RPM Repository for Centos
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
enabled=1

run this command

1
yum install ffmpeg

Convert MP3 to FLV

1
ffmpeg -y -i /home/song.mp3 -f flv -acodec mp3 -ab 64 -ac 1 /home/song.flv
  • Share/Save/Bookmark

Simple helloworld c++ program to test noexec tmp partition

1
2
3
4
5
6
7
#include <iostream>
 
int main()
{
  std::cout << "Hello world, compiled with g++ on linux" << std::endl;
  return 0;
}

compile this and move to your secured tmp partition and execute it. If you get a permission error, tmp partition is mounted correctly with noexec.

  • Share/Save/Bookmark

Synchronize linux date and time using ntpdate

ntpdate synchronize and set computers’ date and time via Network Time Protocol (NTP) server(s).

1
/usr/sbin/ntpdate -u 0.fedora.pool.ntp.org

0.fedora.pool.ntp.org is NTP server. If this server is not working, find another one.

  • Share/Save/Bookmark

Download all file recursively from ftp server

ncftpget is able to let you download entire ftp directory and sub directories from remote ftp server.

Install ncftp client

1
yum install ncftp

Start downloading

1
ncftpget -R -v -u "username"  -p "userpassword" ftp.someserver.com /home/save_at_here /downloads

where,

  • -R : download all subdirectories and files (recusive)
  • -v : verbose, show download activity
  • -u : ftp server user name
  • -p : ftp server user login (if skipped, will prompt to ask password)
  • ftp.someserver.com : ftp server domain or IP
  • /home/save_at_here : all downloaded file will save in this directory
  • /downloads : remote ftp server directory you wish to copy
  • Share/Save/Bookmark

Backup MySQL databases to remote server using mysql-zrm

Recently I use mysql-zrm to backup a large databases from a client server. I can backup all databases or a set of database or maybe some of tables with one line linux command. Pretty easy to use.

You may imagine that mysql-zrm is a strong management tool of mysql, mysqldump and mysqlhotcopy.  The key benifits for me are : I can backup all databases at once with my databases are automatically created if a new client comes; mysql-zrm is able to save compressed data to different folder, so I can keep saved data up to seven days (you may do it one month or maybe one year); It also has a scheduler to do your task every certain time you want.

Installation:

1. login to your backup server

2. Download rpm from http://www.zmanda.com/download-zrm.php

3. If you don’t have Perl installed, run ” yum install perl ”

4. run ” rpm -ivh MySQL-zrm-2.0-1.noarch.rpm ”

5. “  vi /etc/mysql-zrm/mysql-zrm.conf ” update following parameters in file

backup-mode=logical [ ideally raw for myisam engine and logical for innodb. but I recommend using logical for default. Because when I use raw for default value, and if there is table with innodb engine exist, zrm will prompt me password for mysql@(server_ip) which have no idea about linux mysql user login ]

destination=/home/mybackup_dir  [ specify where backup files will be stored]

Start backup:

mysql-zrm –action backup –host xxx.xxx.xxx.xxx –user aabb –password ccdd  –backup-set abcd

where
–host is remote server IP for MySQL
–user is remote MySQL server  user login
–password is remote MySQL server  user login password
–backup-set is backup folder name

Result:

after running the command, you will get backup file in the path look like this

/home/mybackup_dir/abcd/20081128195236

Restore database to local server:

/usr/bin/mysql-zrm-restore –user=1122 –password=2233 –source-directory=/home/mybackup_dir/abcd/20081128195236
check out your backup server MySQL database. :-)

  • Share/Save/Bookmark

Install VMware tools to Fedora 10 client OS on Windows Vista host OS

Software requirements:

  • Windows Vista Ultimate 64bit
  • VMware workstation 6.5.1
  • Fedora 10 64bit

Install packages that are required to build VMware tools:

1
 yum install gcc make kernel-devel</li>

Step by step guide

  1. Logon to Fedora, and select “Install VMware Tools” from VM menu
  2. After the tool cd was mount, open a terminal window logon as root user and type
    1
    2
    3
    
    cd ~
    mkdir VMware
    cd VMWare
  3. Type:
    1
    
    cp /media/VMware\ Tools/VMwareTools-7.8.4-126130.tar.gz ./
  4. Untar and install by typing:
    1
    2
    3
    
    tar zxpf ./VMwareTools-7.8.4-126130.tar.gz
    cd vmware-tools-distrib/
    ./vmware-install.pl
  5. Config and build VMware tool modules:
    1
    
    vmware-config-tools.pl

    and type y when prompt to build vmware modules

Restart your guest OS and then you should have vmware tool installed. You should be able to see your shared folder from the host OS.

  • Share/Save/Bookmark

Linux Server Security Checklist

  • Firewall (apf/csf and bfd)
  • Secure tmp partition (noexec)
  • rootkit scanning
  • PHP hardening
  • Apache hardening
  • Mod-security
  • Shell login notification
  • Share/Save/Bookmark