debian7.5设置开机启动(insserv)

2015年3月06日 16:55

  • 示例脚本
在/etc/init.d目录下新建脚本hello.sh
#!/bin/bash
#
### BEGIN INIT INFO
# Provides:          hello
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Should-Start:      $network $time
# Should-Stop:       $network $time
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Description:       hello world
### END INIT INFO
#

echo "hello world" > /home/wyq/a.log
  • 以update-rc.d命令添加开机启动
wyq@localhost:/etc/init.d$ sudo update-rc.d hello defaults 90
update-rc.d: using dependency based boot sequencing
update-rc.d: error: unable to read /etc/init.d/hello
在debian7系统中,会出现上面错误,需要该用insserv命令
  • 以insserv命令添加开机启动
wyq@localhost:/etc/init.d$ sudo insserv /etc/init.d/hello.sh
insserv: warning: script 'hello.sh' missing LSB tags and overrides
如果脚本没有添加metadata信息,会出现上面错误.
  • insserv用法
insserv myserver #添加服务
insserv -r myserver #删除服务
insserv -d myserver #使用默认的runlevels
 

评论(0) 阅读(2970)

debian中vim显示中文出现乱码

2015年3月03日 10:23

在/etc/vim/vimrc中添加配置
set termencoding=utf-8
set encoding=utf-8

 

Tags: debian;vim
评论(0) 阅读(1177)

debian创建用户没有宿主目录

2015年2月26日 15:23

在debian系统中,以useradd创建用户,默认不会创建密码和宿主目录. debian建议用adduser创建用户,它会提示创建初始密码和目录.
root@xxxx:/home# adduser wyq
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_CTYPE = "zh_CN.UTF-8",
LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Adding user `pkadmin' ...
Adding new group `wyq' (1003) ...
Adding new user `wyq' (1002) with group `wyq' ...
Creating home directory `/home/wyq' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
Changing the user information for wyq
Enter the new value, or press ENTER for the default
Full Name []:       
Room Number []: 
Work Phone []: 
Home Phone []: 
Other []: 
Is the information correct? [Y/n] y
 

Tags: debian
评论(0) 阅读(1588)

chkconfig用法

2015年2月24日 21:46

chkconfig是一种简单的命令行工具,用于帮助管理员对/etc/rc[0-6].d目录层次下的众多的符号链接进行直接操作。

语法

chkconfig --list [name]
chkconfig --add name
chkconfig --del name
chkconfig [--level levels] name <on|off|reset>
chkconfig [--level levels] name
 
--list 显示系统服务的运行状态(on或off)  
--add  增加系统服务  
--del  删除系统服务  
--level 指定系统服务在哪个执行等级中开启或关闭  
      等级0表示:表示关机  
      等级1表示:单用户模式  
      等级2表示:无网络连接的多用户命令行模式  
      等级3表示:有网络连接的多用户命令行模式  
      等级4表示:不可用  
      等级5表示:带图形界面的多用户模式  
      等级6表示:重新启动  

基本用法

  • 查询当前所有自动启动的服务
chkconfig --list 
chkconfig --list [name] //查询特定服务
  • 开机启动开启/关闭
chkconfig httpd on/off
  • 指定服务运行等级
chkconfig --level 35 httpd on/off
设定httpd在等级3和5为开机运行服务.
  • 新增服务
chkconfig --add httpd
加入到chkconfig列表
  • 删除服务
chkconfig --del httpd
从chkconfig列表移除服务
 

评论(0) 阅读(1399)

chkconfig配置开机启动

2015年2月24日 21:30

  • 新建脚本
touch /etc/init.d/echo_msg
  • 添加内容
#!/bin/zsh
#chkconfig:2345 61 61
#description:runing echo
echo "I am runing"  > /home/wyq/start.txt
前三行是chkconfig的格式,不可以省略,否则会出现"服务echo_msg,chkconfig不支持".
  • 赋予执行权限
chmod a+x echo_msg
  • 加入chkconfig列表
chkconfig --add echo_msg
  • 设置开机启动
chkconfig echo_msg on
重启系统之后, 在/home/wyq目录下发现start.txt文件,表示启动成功.
 

Tags: chkconfig
评论(0) 阅读(1151)

rsync+inotify-tools+ssh触发式同步

2014年12月02日 14:53

Tags: rsync;inotify;同步
评论(2) 阅读(2570)

inotify-tools用法

2014年12月02日 14:40

一、介绍

    inotify-tools是为linux下inotify文件监控工具提供的一套C的开发接口函数库,同时还提供了一系列的命令行工具,这些工具可以用来监控文件系统的事件。Inotify-tools使用用c编写的,除了要求内核(Linux2.6.13开始)支持inotify外,不依赖于其他。inotify-tools提供两种工具,一是inotifywait,它是用来监控文件或目录的变化,二是inotifywatch,它是用来统计文件系统访问的次数。

二、初试

1.查看内核是否支持
➜  ~  grep INOTIFY_USER /boot/config-$(uname -r)
CONFIG_INOTIFY_USER=y
 
2.安装
➜  ~ yum install inotify-tools
 
3.运行inotifywait
➜  ~  inotifywait -rm workspace
Setting up watches.  Beware: since -r was given, this may take a while!
Watches established.
 
4. 触发事件, 查看结果
➜  ~  touch workspace/demo.py 
inotifywait输出
workspace/ CREATE demo.py
workspace/ OPEN demo.py
workspace/ ATTRIB demo.py
workspace/ CLOSE_WRITE,CLOSE demo.py

三、语法

inotifywait  [-hcmrq]  [-e  <event> ] [-t <seconds> ] [--format <fmt> ]
       [--timefmt <fmt> ] <file> [ ... ]

四、选项

-r, --recursive  监视一个目录下的所有子目录。
-e , --event     指定监视的事件。
-m, --monitor    接收到一个事情而不退出,无限期地执行。默认的行为是接收到一个事情后立即退出。
-q, --quiet      指定一次,不会输出详细信息,指定二次,除了致命错误,不会输出任何信息。
-h,--help        输出帮助信息
@<file>          排除不需要监视的文件,可以是相对路径,也可以是绝对路径。
--fromfile     从文件读取需要监视的文件或排除的文件,一个文件一行,排除的文件以@开头。
-d, --daemon   跟--monitor一样,除了是在后台运行,需要指定--outfile把事情输出到一个文件。也意味着使用了--syslog。
-o, --outfile  输出事情到一个文件而不是标准输出。
-s, --syslog   输出错误信息到系统日志
--exclude      正则匹配需要排除的文件,大小写敏感。
--excludei     正则匹配需要排除的文件,忽略大小写。
-t , --timeout  设置超时时间,如果为0,则无限期地执行下去。
-c, --csv     输出csv格式。
--timefmt     指定时间格式,用于--format选项中的%T格式。
--format      指定输出格式。
%w    表示发生事件的目录
%f    表示发生事件的文件
%e    表示发生的事件
%Xe   事件以“X"分隔
%T    使用由--timefmt定义的时间格式

五、输出

watched_filename EVENT_NAMES event_filename
  • watched_filename 监控文件
  • EVENT_NAMES 事件名
  • event_filename 事件对象文件

六、事件

access  文件读取
modify  文件更改。
attrib  文件属性更改,如权限,时间戳等。
close_write 以可写模式打开的文件被关闭,不代表此文件一定已经写入数据。
close_nowrite 以只读模式打开的文件被关闭。
close  文件被关闭,不管它是如何打开的。
open   文件打开。
moved_to 一个文件或目录移动到监听的目录,即使是在同一目录内移动,此事件也触发。
moved_from 一个文件或目录移出监听的目录,即使是在同一目录内移动,此事件也触发。
move    包括moved_to和 moved_from
move_self 文件或目录被移除,之后不再监听此文件或目录。
create  文件或目录创建
delete  文件或目录删除
delete_self  文件或目录移除,之后不再监听此文件或目录
unmount  文件系统取消挂载,之后不再监听此文件系统。
 
 
参考: https://www.centos.bz/2012/06/inotify-tools-introduction/
 

Tags: inotify;
评论(0) 阅读(2517)

rsync学习

2014年12月01日 15:53

一、示例

以下面两个目录为例子
src目录结构
➜  tree src
src
└── demo.py
dest目录结构
➜  tree dest 
dest
└── hello.py
 
1. 文件同步
➜  rsync -v src/demo.py dest
demo.py

sent 85 bytes  received 35 bytes  240.00 bytes/sec
total size is 0  speedup is 0.00
 
2. 目录同步
➜  rsync -av src/  dest
sending incremental file list
./
demo.py

sent 118 bytes  received 38 bytes  312.00 bytes/sec
total size is 0  speedup is 0.00
 
3. 远程目录同步
➜  rsync -av src/  wyq@localhost:~/dest
wyq@localhost's password: 
sending incremental file list
./
demo.py

sent 118 bytes  received 38 bytes  34.67 bytes/sec
total size is 0  speedup is 0.00

二、介绍

    rsync(remote sync)远程同步工具. 使用rsync算法,只传送两个文件不同的部分, 而不是每次都整份传送,因此速度相当快. 运行Rsync服务器的机器也叫备份服务,一个Rsync服务器可同时备份多个客户端的数据; 也可以多个Rsync服务器备份一个客户端的数据。
    rsync服务器打开873端口, 等待对方Rsync连接。连接时,Rsync server会检查口令是否相符,若通过口令查核,则可以开始进行文件传输。第一次连通完成时,会把整份文件传输一次,下一次就只传送二个文件之间不同的部份。
    rsync支持大多数linux系统,windows也有相应版本,比较知名的有cwRsync和Sync2NAS。

三、基本特点

1.可以镜像保存整个目录树和文件系统;
2.可以很容易做到保持原来文件的权限、时间、软硬链接等;
3.无须特殊权限即可安装;
4.优化的流程,文件传输效率高;
5.可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接;
6.支持匿名传输。

四、语法

本地:  rsync [OPTION...] SRC... [DEST]

Access via remote shell(ssh)
  获取: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
  推送: rsync [OPTION...] SRC... [USER@]HOST:DEST

Access via rsync daemon:(rsync服务器)
  Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
        rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
  Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
        rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
 
* ":"   分隔符就启动这种模式
* "::"  分隔符启动daemon模式
* 传输方式有两种:rsync-daemon、ssh. daemon方式缺乏灵活性;ssh方式,灵活,速度快,安全性高,但是cpu消耗高.一般用ssh.

五、选项

一般都使用azv选项
 
-v, --verbose 详细模式
-a, archive  归档模式,表示以递归方式传输文件,并保持所有文件属性
-r, --recursive 对子目录以递归方式处理
-z, --compress 传输时对数据进行压缩
-b, --backup 创建备份,存在同名文件,将老的重新命名为~filename. 可以使用--suffix指定不同的备份文件前缀.
-l, --links 保留软链接
-L, --copy-links  像对待常规文件一样处理软链接
-e, --rsh=COMMAND 指定使用rsh, ssh方式进行数据同步
--force 强制删除目录,即使不为空
-u, --update  仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件)
--size-only 当决定是否要备份文件时,仅仅察看文件大小而不考虑文件时间
-I, --ignore-times 不跳过那些有同样的时间和长度的文件
 
-t, --time  保持文件时间信息
-o, --owner 保持文件属主信息
-p, --perms 保持文件权限
-g, --group 保持文件属组信息
-q, --quiet 精简输出模式
-c, --checksum 打开校验模式,强制对文件传输进行校验
--progress 显示数据镜像同步的过程
--delete   以rsync服务器端为基础进行数据镜像同步,保持与rsync服务器目录完全一致.
--delete-excluded  同样删除接收端那些被该选项指定排除的文件
--delete-after 传输结束以后再删除
--exclude=PATTERN  排除不需要传输的文件类型
--partial  保留因故没有完全传输的文件,以加快随后的再次传输
--port=PORT 指定其它rsync服务器端口
--password-file=FILE 从FILE中得到密码
--bwlimit=KBPS 限制I/O带宽,KBytes per second

六、优点与缺点

优点
安全、备份迅速、增量备份,可以解决实时性要求不高的需求.
 
缺点
    rsync需要扫描所有文件后进行对比,然后进行查量传输,如果文件很大,扫描文件非常耗时,而且发生变化的文件往往是很少一部分,因此比较低效.
    rsync不能实时监测,两次触发动作会有时间差,导致服务器和客户端数据出现不一致。
 

Tags: rsync;
评论(0) 阅读(2349)

添加dotdeb源后出现:由于没有公钥,无法验证下列签名: NO_PUBKEY E9C74FEEA2098A6E

2014年11月10日 14:55

在添加dotdeb源后,执行apt-get update出现提示
忽略 http://packages.dotdeb.org stable/all Translation-en                      
命中 http://mirrors.163.com wheezy-updates/main amd64 Packages/DiffIndex       
命中 http://mirrors.163.com wheezy-updates/main Translation-en/DiffIndex       
下载 836 B,耗时 18秒 (44 B/s)                                                 
正在读取软件包列表... 完成
W: GPG 错误:http://packages.dotdeb.org stable Release: 由于没有公钥,无法验证下列签名: NO_PUBKEY E9C74FEEA2098A6E
 
解决办法
执行下面两条命令
gpg --keyserver keys.gnupg.net --recv-key A2098A6E
gpg -a --export A2098A6E | apt-key add -
命令中的"A2098A6E",是错误提示"E9C74FEEA2098A6E"的后8位

Tags: debian;apt-get;dotdeb
评论(0) 阅读(1322)

apt-get包管理工具

2014年11月06日 15:51

什么是apt-get

    apt(the Advanced Packaging Tool)是debian,ubuntu发行版的包管理工具,与红帽中的yum工具非常类似。

基本用法

* 搜索包 apt-cache search
* 获取包信息 apt-cache show
* 安装 apt-get install packagename
* 卸载 apt-get remove packagename
* 更新源 apt-get update
* 更新已安装的包 apt-get upgrade
* 升级系统 apt-get dist-upgrade
* 下载包的源代码 apt-get source packagename

镜像源

apt-get通过镜像源获得软件包
镜像源配置文件:/etc/apt/sources.list
 
网易镜像源
搜狐镜像源
阿里镜像源
 
sources.list有多个版本,不要下错版本
etch    -- debian 4.x
lenny   -- debian 5.x
squeeze -- debian 6.x
wheezy  -- debian 7.x

debian版本

版本 代号    发布日期  
1.1  Buzz   1996年6月17日 
1.2  Rex    1996年12月12日
1.3  Bo     1997年6月2日
2.0  Hamm   1998年7月24日
2.1  Slink  1999年3月9日
2.2  Potato 2000年8月15日
3.0  Woody  2002年7月19日
3.1  Sarge  2005年6月6日 
4.0  Etch   2007年4月8日
5.0  Lenny  2009年2月14日
6.0  Squeeze 2011年2月6日 
7.0  Wheezy 2013年5月5日
8.0  Jessie 尚无确切时间表
 
 

Tags: debian;
评论(0) 阅读(753)