linux命令 标签文章 - 李海鑫个人博客

(2010-8-19)Linux 下输出命令(tee)

编辑文章 没有评论 :

功能说明:读取标准输入的数据,并将其内容输出成文件。此工具在coreutils软件包

语  法:tee [-ai][--help][--version][文件...]

补充说明:tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。

本文HTML永久地址doc

参  数: -a或--append   -i-i或--ignore-interrupts   --help  在线帮助。 --version  显示版本信息。 用 法:

[root@localhost ~]#tee --help   
Usage: tee [OPTION]... [FILE]...
Copy standard input to each FILE, and also to standard output. #读取标准输入的数据,并将其内容输出成文件。

  -a, --append              append to the given FILEs, do not overwrite  #附加到既有文件的后面,而非覆盖它.
  -i, --ignore-interrupts   ignore interrupt signals  #忽略中断信号。 
      --help     display this help and exit           #在线帮助
      --version  output version information and exit  #显示版本信息。

If a FILE is -, copy again to standard output.        #如果文件名为 -,复制信息到标准输出

Report bugs to .
[root@localhost ~]#make | tee software.make  #把编译信息输出到software.make里
[root@localhost ~]#cat slayers.story |tee ss-copy1 ss-copy2 ss-copy3 #列出文本文件slayers.story的内容,同时复制3份副本,文件名称分别为ss-copy1、ss-copy2、ss-copy3

更多信息: 请使用man tee,info tee 查看帮助。

(2010-8-18)linux下yum命令

编辑文章 没有评论 :

Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE、CentOS中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

本文HTML永久地址doc

yum makecache #服务器的包信息下载到本地电脑缓存起来

可以使用配合yum -C search xxx使用不用上网检索就能查找软件信息

update      #更新软件列表信息,包括版本,依赖关系等;
upgrade   # 在不改变现有软件设置的基础上更新软件;
dist-upgrade  #会改变配置文件,改变旧的依赖关系,比如升级操作系统时。

-x 排除默个包

例如:

  yum -y update -x kernel -x kernel-devel -x kernel-headers  #不升级核心包

另外查找一个命令在那个包里,可以使用

 yum whatprovides "*/command-name"

针对小内存VPS(低于128MB的)使用

 yum clean all
 yum makecache

可以解除出现内存不够的提示

(2010-8-9)linux下路由命令route

编辑文章 没有评论 :

linux下route命令:

本文HTML永久地址 doc

添加路由:

route add -net 114.141.197.0 netmask 255.255.255.0 gw 60.12.111.***

删除路由:

route delete -net 114.141.197.0 netmask 255.255.255.0 gw 60.12.111.***

(2010-8-4)Linux解压缩命令tar

编辑文章

格式:tar 选项 文件目录列表 功能:对文件目录进行打包备份 选项:

本文HTML永久地址doc

-c 建立新的归档文件 -r 向归档文件末尾追加文件 -x 从归档文件中解出文件 -O 将文件解开到标准输出 -v 处理过程中输出相关信息 -f 对普通文件操作 -z 调用gzip来压缩归档文件,与-x联用时调用gzip完成解压缩 -Z 调用compress来压缩归档文件,与-x联用时调用compress完成解压缩

例如:

  1. 将当前目录下所有.txt文件打包并压缩归档到文件this.tar.gz,我们可以使用 tar czvf this.tar.gz ./*.txt
  2. 将当前目录下的this.tar.gz中的文件解压到当前目录我们可以使用 tar xzvf this.tar.gz ./
  3. 增量备份(使用-g参数)使用 tar -g 参数进行增量备份实验
    
    完整备份: 
    //建立测试路径与档案 mkdir test touch test/{a,b,c}; 在test下生成三个文件 //执行完整备份 tar -g snapshot -zcf backupfull.tar.gz test //查看 tarball 内容 tar ztf backupfull.tar.gz test/ test/a test/b test/c 增量备份: //新增一个档案 touch test/d //执行第一次的增量备份 (注意 tarball 档名) tar -g snapshot -zcf backupincremental1.tar.gz test //查看 tarball 内容 tar ztf backupincremental1.tar.gz test/ test/d //新增一个档案, 并异动一个档案内容 touch test/e echo 123 > test/a //执行第二次的增量备份 (注意 tarball 档名) tar -g snapshot -zcf backupincremental2.tar.gz test //查看 tarball 内容 tar ztf backupincremental2.tar.gz test/ test/a test/e 还原备份资料: //清空测试资料 rm -rf test //开始进行资料还原 tar zxf backupfull.tar.gz tar zxf backupincremental1.tar.gz tar zxf backupincremental_2.tar.gz //查看测试资料 ls test a b c d e
  4. 增量备份(使用-u参数) 使用 tar -u 参数进行增量备份
    
    第一次备份:
    //建立测试路径与档案
    mkdir test
    touch test/a test/b test/c
    //备份资料
    tar zcf backup.tar.gz test
    //查看 tarball 内容
    tar ztf backup.tar.gz
    test/
    test/a
    test/b
    test/c 
    增量备份:
    //新增一个档案, 并异动一个档案内容 touch test/d echo 123 > test/a
    //执行增量备份 (-u 参数只能执行於未压缩的 tarball) gunzip backup.tar.gz tar uf backup.tar test gzip backup.tar
    //查看 tarball 内容 tar ztf backup.tar.gz test/ test/a test/b test/c test/ test/a test/d
    //还原备份资料:
    //清除测试资料 rm -rf test
    //解包 tarball tar zxf backup.tar.gz
    //查看测试资料 ls test a b c d

脚本1(http://blog.lihaixin.com/2010/08/tar-command.html)

#!/bin/bash
# define
dayofweek=`date "+%u"`
today=`date "+%Y%m%d"`
source=/data/
backup=/backup/

# action
cd $backup

if [ $dayofweek -eq 1 ]; then
  if [ ! -f "full$today.tar.gz" ]; then
    rm -rf snapshot
    tar -g snapshot -zcf "full$today.tar.gz" $source
  fi
else
  if [ ! -f "inc$today.tar.gz" ]; then
    tar -g snapshot -zcf "inc$today.tar.gz" $source
  fi
fi

脚本二(http://www.futuremedia.pl/pub/projekty/backup/backup)

#!/bin/bash
# simple backup script. intended to run daily from crontab
# called "biedacula" after "bieda", which is Polish word for "poor".

# implements poor man's GFS scheme, hence the name:)
# requires GNU tar, GNU gzip and ncftp

# these files must contain file/dir paths (one a line)
PATHFILE=/etc/backup-defs
SKIPFILE=/etc/backup-excludes
# this is a snapshot file auto-created by GNU tar
SNAPSHOT=/etc/backup-snapshot

# FTP host to send backups ( must allow anonymous RW access for me )
FTPHOST=192.168.2.2
FTPPORT=21

# when to do full, monthly/weekly  backups
FULL_MONTHDAY=1  # 1st day of month
FULL_WEEKDAY=7  # Sunday

# how many "tapes" for monthly backups
KEEP_MONTHLY=3
# how many "tapes" for weekly backups
KEEP_WEEKLY=4
# in total you will have ( KEEP_MONTHLY + KEEP_WEEKLY + 6 ) "tapes"

function biedump {
  local TYPE=$1
  local LABEL=$2
  local start=`date +%Y%m%d%H%M`
  echo "$start: Starting $TYPE dump to label $LABEL"
  if [ "x$TYPE" == "xfull" ] ; then
    rm -rf $SNAPSHOT
  fi
  tar -c -T$PATHFILE -X$SKIPFILE -g$SNAPSHOT -P -f - \
   | gzip \
   | ncftpput -c -S.tmp -P $FTPPORT $FTPHOST $LABEL
  local res=$?
  local end=`date +%Y%m%d%H%M`
  if [ $res -eq 0 ]; then
 echo "$end: $TYPE dump OK."
  else
    echo "$end: $TYPE dump FAILED with exit code $res."
  fi
}

host=`hostname -f`
yyyy=`date +%Y`
mm=`date +%m`
dd=`date +%d`
ww=`date +%V`
day_of_week=`date +%u`
dayofweek=`date +%a`

echo "Hello. This is biedacula backup running at $host."
echo "Today is $yyyy/$mm/$dd, day $day_of_week ($dayofweek) of week $ww."

if [ $dd -eq $FULL_MONTHDAY ]; then
  let " n = ( mm % $KEEP_MONTHLY ) + 1 "
  biedump 'full' "$host-M-$n.tgz"
elif [ $day_of_week -eq $FULL_WEEKDAY ] ; then
  let " n = ( ww % $KEEP_WEEKLY ) + 1 "
  biedump 'full' "$host-W-$n.tgz"
else
  biedump 'incr' "$host-D-$dayofweek.tgz"
fi

更多信息: --help 参数得到常用使用方法

(2008-9-4)使用scp(rcp)远程拷贝

编辑文章 没有评论 :

本文HTML永久地址doc

scp [email protected]:/root/firewall.tar.gz ./
scp /home/cheney/full.tar.gz [email protected]:/home/root/
scp -r [email protected]:/mail/* ./ (拷贝整个目录下的所有文件)

注意:“-p”选项表示文件的改变和访问时间属性以及权限,在拷贝过程中被保留。通常是需要这样的。

需要输入相应的用户名和密码

scp是有Security的文件拷贝,基于ssh登录。

不同的Linux之间拷贝文件常用有3种方法:

第一种就是ftp,也就是其中一台Linux安装ftp Server,这样可以另外一台使用ftp的client程序来进行文件的拷贝。

第二种方法就是采用samba服务,类似Windows文件复制的方式来操作,比较简洁方便。

第三种就是利用scp命令来进行文件拷贝。