您的位置:首页 > 运维架构 > Linux

linux使用备份

2013-06-28 11:03 14 查看
vmstat可以观察到系统的进程状态、内存使用、虚拟内存使用、磁盘的IO、中断、上下问切换、CPU使用等。除了 sysstat 工具包外,这个工具能查看的系统资源最多。

free命令显示系统内存的使用状况(物理内存和交换内存)
通过这个命令我们可以看到系统进程实际使用的物理内存,buffer和cache使用的物理内存
这行分别显示了物理内存的总量(total)、已使用的(used)、空闲的(free)、共享的(shared)、buffer、cache的内存。还可以显示交换内存的使用。
uptime
Strace 如果我们知道一个程序执行效率很差,需要分析这个程序执行时的某个阶段或者某个系统调用的性能状况,可以使用 strace 命令。
因其输出显示都是系统调用,要显示程序中函数调用栈信息,就轮到pstack上场了。
pstack查看函数堆栈
pstack是一个脚本工具,其核心实现就是使用了gdb以及thread apply all bt命令,下面我们使用pstack查看server进程函数堆栈:
# sh pstack.sh 16739#0 0x00002ba1f8152650 in __nanosleep_nocancel () from /lib64/libc.so.6#1 0x00002ba1f8152489 in sleep () from /lib64/libc.so.6#2 0x00000000004007bb in ha_ha ()
#3 0x0000000000400a53 in main ()
从以上信息可以看出,函数调用关系为:main->ha_ha->sleep,因而我们可以找到ha_ha函数进行分析和优化修改。
gprof的基本用法:
1. 使用 -pg 选项编译和链接你的应用程序
如果想查看库函数的profiling,需要在编译是再加入“-lc_p”编译参数代替“-lc”编译参数,这样程序会链接libc_p.a库,才可以产生库函数的profiling信息。如果想执行一行一行的profiling,还需要加入“-g”编译参数。
2. 执行你的应用程序使之生成供gprof 分析的数据
运行刚才的程序:./test,在程序在运行时采集并记录函数的调用关系和调用次数,以及采集并记录函数自身执行时间和子函数的调用时间,程序运行结束后,会在程序退出的路径下生成一个gmon.out文件。这个文件就是记录并保存下来的监控数据。
3. 使用gprof 分析你的应用程序生成的数据
gprof test gmon.out > profile.txt
就可以分析程序test的性能,将profiling的结果放在profile.txt文件中,打开就可以看到分析的结果。把耗时最多的函数或运算找出来,用FPGA芯片实现,从而达到real-time的目的。
常用的gprof命令选项: 
-b 不再输出统计图表中每个字段的详细描述。 
-p 只输出函数的调用图(Call graph的那部分信息)。
-q 只输出函数的时间消耗列表。
-e Name 不再输出函数Name 及其子函数的调用图(除非它们有未被限制的其它父函数)。可以给定多个 -e 标志。一个 -e 标志只能指定一个函数。
-E Name 不再输出函数Name 及其子函数的调用图,此标志类似于 -e 标志,但它在总时间和百分比时间的计算中排除了由函数Name 及其子函数所用的时间。
-f Name 输出函数Name 及其子函数的调用图。可以指定多个 -f 标志。一个 -f 标志只能指定一个函数。 
-F Name 输出函数Name 及其子函数的调用图,它类似于 -f 标志,但它在总时间和百分比时间计算中仅使用所打印的例程的时间。可以指定多个 -F 标志。一个 -F 标志只能指定一个函数。-F 标志覆盖 -E 标志。 
-z 显示使用次数为零的例程(按照调用计数和累积时间计算)。
linux下利用命令查看显卡型号lspci |grep VGA
1、hwbrowser
2、dmidecode,从bios中读取信息
3、lspci |grep VGA
4、如果是nvdia的话,可以试试glxinfo
df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。
du可以查看文件及文件夹的大小。
用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。
df命令可以显示目前所有文件系统的可用空间及使用情形参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。
du:查询文件或文件夹的磁盘使用空间
如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!
如果有一个进程在打开一个大文件的时候,这个大文件直接被rm 或者mv掉,则du会更新统计数值,df不会更新统计数值,还是认为空间没有释放。直到这个打开大文件的进程被Kill掉。
统计总数大小
du -sh xmldb/
du -sm * | sort -n //统计当前目录大小 并安大小 排序
du -sk * | sort -n
du -sk * | grep guojf //看一个人的大小
du -m | cut -d "/" -f 2 //看第二个/ 字符前的文字
查看此文件夹有多少文件 /*/*/* 有多少文件
du xmldb/
du xmldb/*/*/* |wc -l
40752
# ls -lh
total 30M
统计代码行数
当前目录下:
wc -l *.c *.h
当前目录及子目录:
find . -name *.c |xargs wc -l
find . -name *.cpp | xargs wc -l
find . -name *.h |xargs wc -l
ubuntu和linux下都不用虚拟光驱软件
用mount命令把ISO文件变挂载成文件夹
解: mount  -o loop /dskb/Download/Rpm/wps2005.iso /mnt/cdrom2
//下载服务器上的代码 
export CVSROOT=:pserver:jason@192.168.1.254:2401/c3itop
cvs login
cvs co qt-embedded-linux-commercial-src-4.4.1-vxworks 
cvs update -P -d
cvs commit
//配置环境变量
. ./vxenv.sh 
./configrtp.sh  
//装库,从新的软件包里装
//编译vx66版本上的qt程序时,需要使用相应参数选项
./configure.exe -spec qmake/linux/mkspecs/vx660/x86-rtp-g++/
//将253服务器上的projects目录挂载上去
sudo mount -t cifs -o username=***,passwd=***,iocharset=utf8,uid=1000,gid=1000,nounix,noserverino //192.168.1.253/projects ./server/
//查看环境变量是否有问题
export 后回车
查找是否有调试信息:nmpentium qt-word-test |grep main
mount -t nfs  -o nolock 192.168.1.111:/home/wxh/nfs /mnt
安装nfs,关闭防火墙,修改/etc/exports;重启nfs;
1.金山词霸 2003 for linux。
2.福昕 Foxit PDF Reader 1.0 
3.SMPlayer 0.6.6。电影播放器(外壳程序),配合上面提到的解码器,就“全能”了。
4.Audacious 1.5.1。号称Ubuntu常用软件下的“千千静听”,确实名不虚传的。
5.Ubuntu常用软件MultiGet 1.2.0 (下载软件,我承认,ub下的速度确实不如迅雷,但也不错了。不信看我附件的截图)
安装预载程序:
sudo apt-get install preload
很多默认启动的系统服务没有显示在列表当中。运行下面的命令,可以对这些服务进行设置:
sudo sed -i 's/NoDisplay=true/NoDisplay=false/g' /etc/xdg/autostart/*.desktop
这个命令修改了随机启动服务的文件属性,把参数“NoDisplay”的值由“true”改为“false”,让这项服务显示在随机启动的列表当中。运行了命令之后,重新打开随机启动程序对话框,你就能看到之前被隐藏的系统服务了。
不要点击Remove,那会从系统上删除该程序的。如果你想让程序恢复随机启动,在前面打钩就可以了。
比较简陋的桌面系统:
sudo apt-get install lxde
xfce桌面系统:sudo apt-get update
sudo apt-get install xfce4
Midori: Ubuntu 上的轻量级 Web 浏览器
sudo add-apt-repository ppa:midori/ppa 
sudo add-apt-repository ppa:webkit-team/ppa 
sudo apt-get update 
sudo apt-get install midori

ubuntu使用
(1)清除firefox缓存:rm ~/.mozilla/firefox/* .default/Cache/* -rf
(2)清理孤立的包:sudo apt-get install deborphan -y
(3)包管理的临时文件目录:/var/cache/apt/archives
没有下载完的在/var/cache/apt/archives/partial
(4)新立得软件包管理
sudo apt-get remove --purge 软件名
sudo apt-get autoremove 删除系统不再使用的孤立软件
sudo apt-get autoclean 清理旧版本的软件缓存
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P 清除残余的配置文件
2.删除多余内核
1查看当前Ubuntu系统使用的内核
uname -a
2查看所有内核
dpkg --get-selections|grep linux
3删除
sudo apt-get remove linux-image-2.6.32-22-generic
ps:linux-image-xxxxxx-generic 就是要删除的内核版本
linux-headers-xxxxxx
linux-headers-xxxxxx-generic 总之中间有“xxxxxx”那段的旧内核都能删,注意一般选内核号较小的删
3.系统时间设置
(1)/etc/timezone修改时区:
(2)在 /etc/default/rcS这个文件中,设定了系统是否使用UTC

1.启动区及分割表
cmos:记录主板上的重要参数,包括系统时间,CPU电压与频率,各项设备的IO地址与
IRQ等,主板上要有电来保存参数。
BIOS:写入主板某一块flash或E2PROM的程序,开机执行,加载cmos当中的参数,并呼叫
储存装置中的开机程序,进入操作系统中,BIOS可以修改cmos中的数据。
磁盘的第一个扇区记录两个重要信息:主要启动记录区(MBR),安装开机管理程序的地方,有
446bytes,系统在开机时会主动读取这个区块的内容;分割表,记录整颗硬盘分割的状态,
有64bytes。
在分割表所在的64bytes容量中,总共分为四组记录区,每组记录区记录了该区段的起始和结束的
磁柱号码。最多能容纳四个分割的记录,称为主要或延伸分割槽;延伸分割的目地是用该扇区记录逻辑
分割槽,延伸分割本身不能被拿来格式化。
挂载:利用一个目录当成进入点,将磁盘分区槽的数据放置在该目录下,进入该目录就可以读取该分割槽
;linux根目录一定要挂载到某个分割槽的,至于其他目录可根据用户需求挂载到不同的分割槽。

(3)磁盘格式化
mkfs 【-t文件系统格式(ext3,ext2,vfat)】 装置文件名
(4)执行fsck扫描硬盘时,被检查的partition务必不可挂载到系统上,需要是卸载的状态。

4.挂载与卸载
mount -t (文件系统类型:ext2,ext3,vfat,iso9660(光盘格式),nfs,cifs,smbfs(三种文件系统)) -o后面可以加一些额外参数,帐号,文字格式等
sudo mount -t cifs -o username=***,passwd=***,iocharset=utf8,uid=1000,gid=1000,nounix,noserverino //192.168.1.253/projects ./server/
挂载前先建立要挂在到的目录;

1、sudo apt-get install nfs-kernel-server
2、创建一个目录作为放置文件的共享文件夹
mkdir nfs-share
3、修改/etc/exports:
/home/vmm/nfs-share *(rw,sync,no_root_squash)
4、重启服务:
sudo /etc/init.d/portmap restart
sudo /etc/init.d/nfs-kernel-server restart
5、在目标板上:
mount -o nolock 192.168.1.10:/home/vmm/nfs-share /mnt
如果成功可以看到HOST上共享文件夹里的文件。

1、lspci 列出所有PCI 设备;
lspci - list all PCI devices ,主要是有来列出机器中的PCI 设备;
lspci 有两个参数是我们常用的,-b 和-v ,lspci 也会把usb接口列出来;
通过 lspci -v 来查看硬件的irq中断什么的;比如网卡不好用,是不是irq 存在冲突了?

sysoutbyte 0x64,0xfe
/proc/modules
当前装入内核的所有模块名称列表,可以由lsmod命令使用,也可以直接查看;如下所示,其中第一列表示模块名,第二列表示此模块占用内存空间大小,
第三列表示此模块有多少实例被装入,第四列表示此模块依赖于其它哪些模块,第五列表示此模块的装载状态(Live:已经装入;Loading:正在装入;
Unloading:正在卸载),第六列表示此模块在内核内存(kernel memory)中的偏移量;
/proc/devices
系统已经加载的所有块设备和字符设备的信息,包含主设备号和设备组(与主设备号对应的设备类型)名;
/proc/diskstats
每块磁盘设备的磁盘I/O统计信息列表;(内核2.5.69以后的版本支持此功能)
/proc/dma
每个正在使用且注册的ISA DMA通道的信息列表;
/proc/fb
帧缓冲设备列表文件,包含帧缓冲设备的设备号和相关驱动信息;
/proc/filesystems
当前被内核支持的文件系统类型列表文件,被标示为nodev的文件系统表示不需要块设备的支持;通常mount一个设备时,
如果没有指定文件系统类型将通过此文件来决定其所需文件系统的类型;
/proc/interrupts
X86或X86_64体系架构系统上每个IRQ相关的中断号列表;多路处理器平台上每个CPU对于每个I/O设备均有自己的中断号;
/proc/iomem
每个物理设备上的记忆体(RAM或者ROM)在系统内存中的映射信息;
/proc/oports
当前正在使用且已经注册过的与物理设备进行通讯的输入-输出端口范围信息列表;如下面所示,第一列表示注册的I/O端口范围,其后表示相关的设备;
看系统信息日志的途径:
(1)dmesg是从kernel 的ring buffer(环缓冲区)中读取信息的.
所有的系统信息(包内核信息)都会传送到ring buffer中.而内核产生的信息由printk()打印出来。高于一定的优先级别会打印到屏幕上, 否则只会保留在系统的缓冲区中(ring buffer)。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: