Linux日志轮转工具Logrotate

Linux系统日志对管理员来说,是了解系统运行的主要途径,因此需要对 Linux 日志系统有个详细的了解。 Linux 系统内核和许多程序会产生各种错误信息、告警信息和其他的提示信息,这些各种信息都应该记录到日志文件中,完成这个过程的程序就是 rsyslog,rsyslog 可以根据日志的类别和优先级将日志保存到不同的文件中阅读全文→


smarteng 发布于 2021-09-10 17:26

通过Supervisor部署Go程序

通过Supervisor部署Go程序

Supervisord 是用 Python 实现的一款非常实用的进程管理工具,supervisord 还要求管理的程序是非 daemon 程序,supervisord 会帮你把它转成 daemon 程序,因此如果用 supervisord 来管理 nginx 的话,必须在 nginx 的配置文件里添加一行设置 daemon off 让 nginx 以非 daemon 方式启动。阅读全文→


smarteng 发布于 2021-09-10 15:07

Linux常用工具命令-screen

screen作用

统一的管理多个会话的界面和相应的功能。可以保持会话。阅读全文→


smarteng 发布于 2021-09-10 14:57

linux 下 svn常用命令

1、将文件checkout到本地目录
svn checkout path(path是服务器上的目录)
例如:svn checkout svn://192.168.1.1/pro/domain
简写:svn co
2、往版本库中添加新的文件
svn add file
例如:svn add test.php(添加test.php)
svn add *.php(添加当前目录下所有的php文件)
3、将改动的文件提交到版...
阅读全文→
标签: Linux 命令

smarteng 发布于 2012-12-03 10:52

Linux查看系统信息命令

系统

# uname -a               # 查看内核/操作系统/CPU信息
# head -n 1 /etc/issue   # 查看操作系统版本
# cat /proc/cpuinfo      # 查看CPU信息
# hostname               # 查看计算机名
# lspci -tv              # 列出所有PCI设备
# lsusb ...
阅读全文→

smarteng 发布于 2011-06-29 09:51

转:工作中常用的Linux命令集锦

tcpdump —— 打印出通过网口流入流出的数据内容,用于网络协议调试

tcpdump就是大家嘴里常说的抓包工具,在linux命令行下,使用tcpdump,可以查看服务器特定端口进出的数据包内容。

阅读全文→

smarteng 发布于 2011-04-13 10:51

Linux命令行提示符设置解析

命令行(终端)的提示符可以通过变量PS1来设置,
可以用以下命令来显示当前设置:
echo $PS1   
系统范围的提示符(对系统里所有用户有效)的设定在文件 /etc/bashrc里,可能包含以下的行:   PS=“[\u@\h \W]\$"   要定制提示符,我们可以编辑文件 /etc/bashrc (要root用户)然后在两个引号之内输入任何你想要的文本。

阅读全文→

smarteng 发布于 2010-11-10 23:01

shell脚本判断变量文件目录的写法

Linux shell 是灰常强大的,这篇文章是一些基本的shell命令,

先写一些基本语法: 

1、字符串判断 

str1 = str2      当两个串有相同内容、长度时为真 

str1 != str2      当串str1和str2不等时为真 

阅读全文→

smarteng 发布于 2010-09-13 12:57

UNIX环境高级编程读书笔记连载之UNIX信号

Unix信号真是一个有趣的东西,以前仅仅知道键入Control+C时,结束程序,但不知原理是什么,今天我就来和大家一起学习这玩意,希望大家都有收获。

       所有的信号量,例如SIGINT事实上在头文件中都有定义,linux内核在Linux 2.4.22以上的,可以在/usr/include/bits/signums.h可以找到定义,看见没有,信号都是非负的整数,没啥神秘的,哈哈。

在linux终端下运行程序后,当你键入Control+C时,程序就终结了。这是因为当你键入Control+C时,相当于向当前进程发送了SIGINT信号,进程收到此信号的默认动作是立即退出。信号是异步的,进程不知道什么时候收到信号,那么产生信号的方式有那些呢?听在下慢慢道来[break]:

(1)   用户通过键盘键入信号,如Control+C代表中断SIGINT,Control+\代表退出SIGQUIT,Control+Z代表停止SIGSTOP,等等。前台进程(fore ground process)收到这些信号后,就会采取相应动作。

(2) 硬件产生信号,如除0产生SIGFPE信号,内存地址引用出错产生SIGSEGV段错误信号。

(3)   Kill函数,瞧瞧它原型就知道他能干什么了,int kill(pid_t pid, int signo);可不是像它的名字一样,kill事实上不是杀死进程pid,而是向进程号为pid的进程发送信号signo,当然前提是你是这个进程的属主或是NB的超级管理员。

(4)   Kill命令也能向进程发送信号,事实上,kill命令就是kill函数的包装而已,通常是用来杀掉后台进程。Man一下kill你就知道这个命令的用法了。

(5)   software本身也能产生信号,如一个子进程结束时用SIGCHLD通知父进程;调用alarm()时产生的SIGALRM信号,socket套接口编程中常见的SIGPIPE信号,等等。

当信号产生时,处理的方式只有三种,忽略,默认处理或使用指定的信号安装函数。

(1)   忽略信号几乎适用于所有的信号,不过有两个信号除外,SIGKILL和SIGSTOP,要是这两个信号可以忽略,还真不知道怎么干掉后台进程,那岂不是很郁闷?试一试打开linux下的编辑工具vi,键入Control+C没有退出,而键入Control+Z时立马退出,是不是?

(2)   默认处理一般是终结进程,各种发行版本的对各个信号的默认处理有一点不同,详见APUE的10.2节。

(3)   信号安装函数是自己决定对捕获的信号如何处理,这是本章最神秘的内容,学会了这个,你就能玩明白信号编程了,需要注意的是,与忽略信号相似的是,SIGKILL和SIGSTOP信号不能被信号安装函数捕获。

各个信号的意义嘛,我就不一一介绍了,我也不大明白,只是知道几个常用的,详情请参阅APUE的10.2节。

下回预告:Signal()函数,不可靠信号,被信号中断的系统调用,可重入的函数

 

Unix信号量也可以在文件/usr/include/sys/signal.h中查看

#define SIGHUP  进程由於控制终端死去或者控制终端发出起命令 

#define SIGINT  键盘中断所产生的信号 

#define SIGQUIT  键盘终止 

#define SIGILL  非法的指令 

#define SIGTRAP   进程遇到一个追踪(trace)或者是一个中断嵌套 

#define SIGABRT  由abort系统调用所产生的中断信号 

#define SIGIOT  类似於SIGABRT 

#define SIGBUS   进程试图使用不合理的记忆体 

#define SIGFPE  浮点异常 

#define SIGKILL  KILL 

#define SIGUSR1  用户自定义 

#define SIGSEGV  段错误 

#define SIGUSR2  用户自定义 

#define SIGPIPE  管道操作时没有读只写 

#define SIGALRM 由alarm系统调用产生的timer时钟信号 

#define SIGTERM 收到终端信号的进程 

#define SIGSTKFLT 堆叠错误 

#define SIGCHLD  子进程向父进程发出的子进程已经stop或者终止的信号 

#define SIGCONT  继续运行的信号 

#define SIGSTOP  stop 

#define SIGTSTP  键盘所产生的stop信号 

#define SIGTTIN   当运行在後状态时却需要读取stdin的资料 

#define SIGTTOU   当运行在後状态时却需要写向stdout 

#define SIGURG   socket的紧急情况 

#define SIGXCPU  进程超额使用CPU分配的时间 

#define SIGXFSZ  进程使用了超出系统规定文件长度的文件 

#define SIGVTALRM  内部的alarm时钟过期 

#define SIGPROF  在一个程式段中描绘时钟集过期 

#define SIGWINCH 终端视窗的改变 

#define SIGIO 非同步IO 

#define SIGPOLL  SIGIO pollable事件发生

通过结合trap命令使用:trap <command-list>  <signal-list>

以上这些Unix信号量的知识,希望大家能够记住,方便以后我们的使用。


smarteng 发布于 2010-06-09 19:43

最近用到的命令

svn更新步骤:

192.168.24.67上      svn ci -m "修改qa后台显示不正常" newthread.inc.php

192.168.148.217上   svn up newthread.inc.php

svn st -u  //查看svn的状况

svn up

 

$ svn log threadnew.htm

$ svn...

阅读全文→

smarteng 发布于 2010-05-25 12:51

Linux 试题

一.填空题:
1. 在Linux系统中,以 文件 方式访问设备 。
2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统。
3. Linux文件系统中每个文件用 i节点 来标识。
4. 全部磁盘块由四个部分组成,分别为引导块 、专用块 、 i节点表块 和数据存储块。
5. 链接分为: 硬链接 和 符号链接 。
6. 超级块包含了i节点表 和 空闲块表 等重要的文件系统信息。
7. 某文件的权限为:d-rw-_r--_r--,用数值形式表示该权限,则该八进制数为: 644 ,该文件属性是 目录 。
8. 前台起动的进程使用 Ctrl+c 终止。
9. 静态路由设定后,若网络拓扑结构发生变化,需由系统管理员修改路由的设置。
 10. 网络管理的重要任务是: 控制 和 监控 。[break]
11. 安装Linux系统对硬盘分区时,必须有两种分区类型: 文件系统分区 和 交换分区 。
13. 编写的Shell程序运行前必须赋予该脚本文件 执行 权限。
14. 系统管理的任务之一是能够在 分布式 环境中实现对程序和数据的安全保护、备份、恢复和更新。
15. 系统交换分区是作为系统 虚拟存储器 的一块区域。
16. 内核分为 进程管理系统 、 内存管理系统 、 I/O管理系统 和文件管理系统 等四个子系统。
17. 内核配置是系统管理员在改变系统配置 硬件 时要进行的重要操作。
18. 在安装Linux系统中,使用netconfig程序对网络进行配置,该安装程序会一步步提示用户输入主机名、域名、域名服务器、IP地址、 网关地址 和 子网掩码 等必要信息。
19. 唯一标识每一个用户的是用户 ID 和用户名。
20 . RIP 协议是最为普遍的一种内部协议,一般称为动态路由信息协议。
21. 在Linux系统中所有内容都被表示为文件,组织文件的各种方法称为 文件系统 。
22. DHCP可以实现动态 IP 地址分配。
23. 系统网络管理员的管理对象是服务器、 用户 和服务器的进程 以及系统的各种资源。
24. 网络管理通常由监测、传输和管理三部分组成,其中管理部分是整个网络管理的中心。
25. 当想删除本系统用不上的 设备驱动程序 时必须编译内核,当内核不支持系统上的 设备驱动程序 时,必须对内核 升级 。
26 Ping命令可以测试网络中本机系统是否能到达 一台远程主机 ,所以常常用于测试网络的 连通性 。
27. vi编辑器具有两种工作模式: 命令模式 和 输入模式 。
28. 可以用ls –al命令来观察文件的权限,每个文件的权限都用10位表示,并分为四段,其中第一段占 1 位,表示 文件类型 ,第二段占3位,表示 文件所有者 对该文件的权限。
29. 进程与程序的区别在于其动态性,动态的产生和终止,从产生到终止进程可以具有的基本状态为: 运行态 、 就绪态 和 等待态(阻塞态) 。
30. DNS实际上是分布在internet上的主机信息的数据库,其作用是实现 IP地址和主机名 之间的转换。
31. Apache是实现WWW服务器功能的应用程序,即通常所说的“浏览web服务器”,在服务器端 为用户提供浏览 web服务 的就是apache应用程序。
32. 在Linux系统上做备份可以有两种类型:系统备份 和 用户备份 。其中前者是指对 操作系统 的备份,后者是指对 应用程序和用户文件的备份。
33. CD-ROM标准的文件系统类型是 iso9660 。
34. 当lilo.conf配置完毕后,使之生效,应运行的命令及参数是 lilo 。
35. 在使用ls命令时,用八进制形式显示非打印字符应使用参数 -b 。
36. Linux使用支持Windows 9.x/2000长文件名的文件系统的类型是 vfat 。
37. 设定限制用户使用磁盘空间的命令是 quota 。
38 在Linux系统中,用来存放系统所需要的配置文件和子目录的目录是 /etc 。
39. 硬连接只能建立对 文件 链接。符号链接可以跨不同文件系统创建。
40. 套接字文件的属性位是 s 。
41. 结束后台进程的命令是 kill 。
42. 进程的运行有两种方式,即 独立运行和使用父进程运行 。
43. Links分为 硬链接和符号链接 。
44. 在超级用户下显示Linux系统中正在运行的全部进程,应使用的命令及参数是 ps -aux 。
45. 管道文件的属性位是 p 。
46. 将前一个命令的标准输出作为后一个命令的标准输入,称之为 管道 。
47. 为脚本程序指定执行权的命令及参数是 chmod a+x filename 。
48. 进行远程登录的命令是 telnet 。
49. 欲发送10个分组报文测试与主机abc.tuu.edu.cn的连通性,应使用的命令和参数是: ping abc.tuu.edu.cn –c 10 。
50. DNS服务器的进程命名为named,当其启动时,自动装载 /etc目录下的 named.conf 文件中定义的DNS分区数据库文件。
51. Apache服务器进程配置文件是 httpd.conf 。
52.在 Linux系统中,压缩文件后生成后缀为.gz文件的命令是 gzip 。
53. 在用vi编辑文件时,将文件内容存入test.txt文件中,应在命令模式下键入 :w test.txt 。
54 可以在标准输出上显示整年日历的命令及参数是 cal -y 。
55. 在shell编程时,使用方括号表示测试条件的规则是:方括号两边必须有 空格 。
56. 检查已安装的文件系统/dev/had5是否正常,若检查有错,则自动修复,其命令及参数是 fsck –a /dev/had5 。
57. 在Windows9.x环境下共享Unix/Linux中的用户目录的一个工具是 Samba服务器 。
58. 系统管理员的职责是进行系统资源管理、系统性能管理、设备管理、安全管理和 系统性能监测 。
59 在Linux系统中,测试DNS服务器是否能够正确解析域名的的客户端命令,使用命令 nslookup 。
60. 在Linux系统下,第二个IDE通道的硬盘(从盘)被标识为 hdb 。
61. 当系统管理员需升级内核版本和改变系统硬件配置时,应 重新编译内核 。
62. 如果只是要修改系统的IP地址,应修改 /etc/rc.d/rc.inet1 配置文件。
63. 当LAN内没有条件建立DNS服务器,但又想让局域网内的用户可以使用计算机名互相访问时,应配置 /etc/hosts 文件。
64. 在vi编辑环境下,使用 Esc键 进行模式转换。
65. Slackware Linux 9.0通常使用 ext3 文件系统,系统的全部磁盘块由 四 部分组成。
66. 将/home/stud1/wang目录做归档压缩,压缩后生成wang.tar.gz文件,并将此文件保存到/home目录下,实现此任务的tar命令格式 tar zcvf /home/wang.tar.gz /home/stud1/wang 。
67. 管道就是将前一个命令的 标准输出 作为后一个命令的 标准输入 。
68. 在使用手工的方法配置网络时,可通过修改 /etc/HOSTNAME 文件来改变主机名,若要配置该计算机的域名解析客户端,需配置 /etc/resolv.conf 文件。
69. 启动进程有手动启动和调度启动两种方法,其中调度启动常用的命令为 at 、 batch 和 crontab 。
70. test.bns.com.cn的域名是 bns.com.cn ,如果要配置一域名服务器,应在 named.conf 文件中定义DNS数据库的工作目录。
71. Sendmail邮件系统使用的两个主要协议是: SMTP 和 POP ,前者用来发送邮件,后者用来接收邮件。
72. DHCP是动态主机配置协议的简称,其作用是:为网络中的主机分配IP地址 。
73. 目前代理服务器使用的软件包有很多种,教材中使用的是 squid 。
74. rm命令可删除文件或目录,其主要差别就是是否使用递归开关 -r或-R 。
75. mv 命令可以移动文件和目录,还可以为文件和目录重新命名。
76. 路由选择协议(RIP)的跳数表示到达目的地之前必须通过的 网关 数,RIP接受的最长距离是 15跳 。
77. ping命令用于测试网络的连通性,ping命令通过 ICMP 协议(internet控制信息协议)来实现。
78. nfs 协议用于实现Unix(/linux)主机之间的文件系统共享。
79. 在Linux操作系统中,设备都是通过特殊的 文件 来访问。
80. shell不仅是 用户命令的解释器 ,它同时也是一种功能强大的编程语言。 bash是Linux的缺省shell。
81. 用 >;>; 符号将输出重定向内容附加在原文的后面。
82. 增加一个用户的命令是:adduser 或useradd 。
83 进行字符串查找,使用grep命令。
84. 使用 * 每次匹配若干个字符。
85. /sbin 目录用来存放系统管理员使用的管理程序。


smarteng 发布于 2009-12-11 13:35

用tar打包一个目录时,去掉其中的子目录

用tar打包一个目录时,去掉其中的几个子目录
例如要打包 /home/newbbs/  文件夹且排除 /home/newbbs/cms/images 文件夹

tar -czvf bbs.tar.gz /home/newbbs/ --exclude /home/newbbs/cms/images
排除多个文件夹则在命令中添加多个目录 --exclude 目录名,例如:

tar -czvf bbs.tar.gz /home/newbbs/ --exclude /home/newbbs/cms/images --exclude /home/newbbs/vipborad
排除文件的话把上面的目录名改为类似 *.gif 的排除规则即可。
tar -czvf bbs.tar.gz /home/newbbs/ --exclude /home/newbbs/cms/images/*.gif

要排除的目录名或文件名也可以用相对路径或者用绝对路径。


smarteng 发布于 2009-12-10 18:31