Linux下压缩和优化jpg与png图片的方法Linux系统中rena
看中华 最新资讯 2016-01-02 07:06:42
linux运维在操作linux过程中,用得最多的linux下载工具想必一定是wget,没有看到哪一台服务器没装过wget的,或许有人使用ftp下载,也有人使用多线程的axel以及ProZilla,毫无疑问这两个工具都非常的出色,但是对于习惯使用wget的人来说显得不适应,于是老外便开发了多线程版本的wget工具mwget,m表示multi多线程的意思.
mwget
官方地址:?source=dlp
代码如下:
# cd /usr/local/src/
# wget
# tar -xjvf mwget_0.1.0.orig.tar.bz2
# cd mwget_0.1.0.orig
# ./configure
# make
# make install
configure过程中如果出现如下错误,请安装大于等于0.35版本的intltool
checking for intltool >= 0.35.0... ./configure: line 6824: intltool-update: command not found
found
configure: error: Your intltool is too old. You need intltool 0.35.0 or later.
# yum install intltool
wget vs mwget速度测试
以下使用下载2.4.5版本的mongodb来取样.
mwget速度测试
# mwget
Begin to download: mongodb-linux-x86_64-2.4.5.tgz
FileSize: 90M
36% [> => => > ] [ 33M] [2.0M/s] [ETA:00:28]
mwget速度截图如下:
20151227122724537.jpg (657×74)wget速度测试
代码如下:
# wget
--2013-08-16 10:55:23--
Resolving fastdl.mongodb.org... 54.230.114.206, 54.230.113.36, 54.230.114.144, ...
Connecting to fastdl.mongodb.org54.230.114.206:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 94827295 (90M) [application/x-tar]
Saving to: “mongodb-linux-x86_64-2.4.5.tgz.1”
6% [> ] 6,470,547 210K/s eta 6m 26s
wget速度截图如下
20151227122744563.jpg (650×155)
mwget用法:
代码如下:
# mwget -h
GNU MWget 0.1.0 ,a non-interactive and multiline network retriever of all POSTIX Systems.
Usage: mwget [Options]... [URL]...
Options:
-b, --debug Show the debug message
-c, --count=num Set the retry count to [num], no limit when "0", the default is "99"
-d, --directory=dir Set the local direcotry to [dir], the default is "."
-f, --file=file Rename the file to [file]
-h, --help A brief summary of all the options
-i, --interval=num Set the ftp retry interval to [num] seconds, the default is "5"
-n, --number=num Use [num] connections instead of the default (4)
-r, --referer=URL Include `Referer: [URL]" header in HTTP request.
-t, --timeout=num Set the connection timeout to [num] seconds, the default is "30"
-v, --version Show the version of the mwget and exit
-x, --proxy=URL Set the proxy [URL]
Mail bug reports and suggestions to
On website bug reports and suggestions to
We Welcome your BUG REPORT!
Axel
运维工作中,常常需要下载文件,因为网站下载速度限制或者网络等原因导致下载让人无法忍受,前面有介绍多线程wget工具mwget,提速不少,而且使用很简单。axel使用的人更多,不仅仅安装方法简单,命令更简单。往下看。
安装Axel
RPM安装Axel(方法一)
下载地址:
如图,选择适合你服务器的RPM
20151227122806055.jpg (759×522)
复制代码
root@ttlsa # wget
root@ttlsa # rpm -ivh axel-2.4-1.el6.rf.x86_64.rpm
Preparing... ########################################### [100%]
1:axel ########################################### [100%]
yum安装Axel(方法二)
复制代码
root@ttlsa # yum install axel
apt-get安装Axel
如果你是Ubuntu系统
root@ttlsa # axel -h
Usage: axel [options] url1 [url2] [url...]
--max-speed=x -s x 最大速度 (字节/秒)
--num-connections=x -n x 最大连接数
--output=f -o f 指定文件名
--search[=x] -S [x] Search for mirrors and download from x servers
--header=x -H x 添加header
--user-agent=x -U x 设置用户代理
--no-proxy -N 不使用任何代理
--quiet -q Leave stdout alone
--verbose -v 显示更多状态信息
--alternate -a 显示简单进度条
--help -h 帮助
--version -V 版本信息
axel使用实例
下载centos
root@ttlsa # axel [ 1%] .......... .......... .......... .......... .......... [4654.5KB/s]
[ 1%] .......... .......... .......... .......... .......... [4657.1KB/s]
[ 1%] .......... .......... .......... .......... .......... [4656.5KB/s]
[ 1%] .......... .......... .......... .......... .......... [4659.3KB/s]
下载运维生存时间某图片
复制代码
代码如下:
root@ttlsa # axel
Initializing download:
File size: 73009 bytes
Opening output file zabbix-adduser-01.jpg
Starting download
< p>root@ttlsa # axel
Initializing download:
File size: 73009 bytes
Opening output file zabbix-adduser-01.jpg
[ 0%] .......... .......... .......... .......... .......... [ 598.0KB/s]
[ 70%] .......... .......... .
Connection 0 finished
Downloaded 71.3 kilobytes in 0 seconds. (710.02 KB/s)
简单进度条
默认情况下,整个屏幕都是进度条,加上-a参数,进度条类似wget。
复制代码
代码如下:
root@ttlsa # axel -a download:
File size: 4467982336 bytes
Opening output file CentOS-6.5-x86_64-bin-DVD1.iso
< p>[ 1%] [0 1 2 3 ] [ 3.2MB/s] [21:47]
下载限速
ttlsa的网站带宽有限制,我要保证下载的同时又不影响用户的访问,例如限制为1MB/s的下载速度,如下可以看到速度基本保证在1MB以内。
复制代码
代码如下:
root@ttlsa # axel -s 1024000
Initializing download:
File size: 4467982336 bytes
Opening output file CentOS-6.5-x86_64-bin-DVD1.iso
State file found: 30522952 bytes downloaded, 4437459384 to go.
,,,,,,,... .......... .......... .......... .......... [ 394.8KB/s]
[ 0%] .......... .......... .......... .......... .......... [ 689.2KB/s]
[ 0%] .......... .......... .......... .......... .......... [ 879.5KB/s]
[ 0%] .......... .......... .......... .......... .......... [ 974.5KB/s]
[ 0%] .......... .......... .......... .......... .......... [1086.4KB/s]
[ 0%] .......... .......... .......... .......... .......... [ 967.5KB/s]
[ 0%] .......... .......... .......... .......... .......... [ 943.8KB/s]
[ 0%] .......... .......... .......... .......... .......... [1021.0KB/s]
[ 0%] .......... .......... .......... .......... .......... [1066.1KB/s]
最后
完成,方法很简单,功能很简单。运维生存时间的服务器以及安装了axel,你的安装了吗?
磁盘管理
日程磁盘管理中,我们最常用的有查看当前磁盘使用情况,查看当前目录所占大小,以及打包压缩与解压缩;
查看磁盘空间
查看磁盘空间利用大小
df -h
-h: human缩写,以人类易读方式显示结果(既带单位:比如M/G,如果不加这个参数,显示的数字以B为单位)
$df -h
/opt/app/todeav/config#df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
2.0G 711M 1.2G 38% /
/dev/mapper/vg1-lv2 20G 3.8G 15G 21% /opt/applog
/dev/mapper/vg1-lv1 20G 13G 5.6G 70% /opt/app查看当前目录所占空间大小
du -sh
-h 人性化显示
-s 递归整个目录的大小
$du -sh
653M查看当前目录下所有子文件夹排序后的大小
for i in `ls`; do du -sh $i; done
sort
或者:
du -sh `ls`
sort打包/ 压缩
打包
在linux中打包和压缩和分两步来实现的;打包是将多个文件归并到一个文件;压缩命令实现大小;
tar -cvf etc.tar /etc
<仅打包,不压缩!
-c :打包选项
-v :显示打包进度
-f :使用档案文件
注:有的系统中指定参数时不需要在前面加上-,直接使用tar xvf
压缩
$gzip demo.txt
生成
demo.txt.gz
解包/解压缩
解包
tar -xvf demo.tar
-x 解包选项
解压后缀为 .tar.gz的文件
先解压缩,生成**.tar
$gunzip demo.tar.gz2.
解包:
$tar -xvf demo.tar
$bzip2 -d demo.tar.bz2bz2
解压
tar jxvf demo.tar.bz2
如果tar 不支持j,则同样需要分两步来解包解压缩,使用bzip2来解压,再使用tar解包;
bzip2 -d demo.tar.bz2
tar -xvf demo.tar
-d decompose
解压缩
tar解压参数说明:
-z 解压gz文件
-j 解压bz2文件
-J 解压xz文件
文件及目录管理
文件管理不外乎文件或目录的创建、删除、查询、移动,有mkdir/rm/mv
文件查询是重点,用find来进行查询;find的参数丰富,也非常强大;
查看文件内容是个大的话题,文本的处理有太多的工具供我们使用,在本章中只是点到即止,后面会有专门的一章来介绍文本的处理工具;
有时候,需要给文件创建一个别名,我们需要用到ln,使用这个别名和使用原文件是相同的效果;
创建和删除
创建:
mkdir
删除:rm 删除非空目录:
rm -rf file 目录
删除日志
$rm *log
等价:
$find ./ -name "*log" -exec rm
;
查看当前目录下文件个数
$find ./
wc -l
移动:
mv
复制:
cp
复制目录:
cp -r
eg:$cp -r source_dir dest_dir
目录切换
找到文件/目录位置:
cd
切换到上一个工作目录:
cd -
切换到home目录:cd or cd ~
$pwd
显示当前路径
$cd path
更改当前工作路径为path
列出目录项
显示当前目录下的文件
ls
按时间排序,以列表的方式显示目录项
ls -lrt
以上这个命令用到的频率如此之高,以至于我们需要为它建立一个快捷命令方式:
在.bashrc 中设置命令别名:
alias lsl="ls -lrt"
alias lm="ls -almore"
这样,使用lsl,就可以显示目录中的文件依照修改时间排序;以列表方式显示;
注:.bashrc 在/home/你的用户名/ 文件夹下,以隐藏文件的方式存储;可使用 ls -a 查看;
查找目录及文件 find/locate
搜寻文件或目录:
$find ./ -name "core"
xargs file
查找目标文件夹中是否有obj文件:
$find ./ -name ".o"
递归当前目录及子目录删除所有.o文件:
$find ./ -name "*.o" -exec rm
;
find是实时查找,如果需要更快的查询,可试试locate;locate会为文件系统建立索引数据库,如果有文件更新,需要定期执行更新命令来更新索引库;
$locate string
寻找包含有string的路径
$updatedb
与find不同,locate并不是实时查找。你需要更新数据库,以获得最新的文件索引信息。
查看文件内容
查看文件:
cat vi head tail more
$cat -n
显示时同时显示行号
$ls -al more
一页一页显示列表内容;
$head - 10 **
只看前10行
$head -1 filename
显示文件第一行
$tail -5 filename
显示文件倒数第五行
$diff file1 file2
查看两个文件间的差别
$tail -f crawler.log
动态显示文本最新信息
查找文件内容
egrep "03.1/CO/AE" TSF_STAT_111130.log.012
egrep "A_LSHA777:C" TSF_STAT_111130.log.035 > co.out2
co.out35: egrep "A_LSHA777:C" TSF_STAT_111130.log.035 > co.out35
文件与目录权限修改
chown
改变文件的拥有者
chmod
改变文件读、写、执行等属性
递归子目录修改:
chown -R tuxapp source/
增加脚本可执行权限:
chmod a+x myt
给文件增加别名
创建符号链接/硬链接:
ln cc ccAgain
硬连接;删除一个,将仍能找到;
ln -s cc ccTo
符号链接(软链接);删除源,另一个无法使用;(后面一个ccTo 为新建的文件)
管道和重定向
批处理命令连接执行:
串联: 使用分号 ;
前面成功,则执行后面一条,否则,不执行:&&
前面失败,则后一条执行:
eg:
ls /proc && echo suss!
echo failed.
能够提示命名是否执行成功or失败;
与上述相同效果的是:
if ls /proc; then echo suss; else echo fail; fi
重定向:
ls proc/.c > list > &l
将结果输出到list,将错误输出到同一个文件末尾;
等价的是:
ls proc/.c &> list
ls list1 list2
可同时列出多个文件;
清空文件: :> a.txt
重定向:最佳文本: echo aa >> a.txt
设置环境变量
启动帐号后自动执行的是 文件为 .profile,然后通过这个文件可设置本身的环境变量;
安装的软件路径一般需要加入到path中:
PATH=$APPDIR:/opt/app/soft/bin:$PATH:/usr/local/bin:$TUXDIR/bin:$ORACLE_HOME/bin;export PATH
Bash快捷输入或删除
快捷键:
Ctl-U 删除光标到行首的所有字符,在某些设置下,删除全行
Ctl-W 删除当前光标到前边的最近一个空格之间的字符
Ctl-H backspace,删除光标前边的字符
Ctl-R: 匹配最相近的一个文件,然后输出
综合应用
cat -v record.log
grep AAA grep -v BBB wc -l
查找record.log中包含AAA,但不包含BBB的记录的总数来源2016-01-01)
本文相关推荐
相关新闻
版权声明
本文仅代表作者观点,不代表看中华立场。
本文系作者授权看中华发表,未经许可,不得转载。