linux学习:归档,备份及进程相关命令用法整理
指令:tar、zip、gzip、unzip、rsync、scp、ps、kill、nohup
压缩
tar 归档命令,不具备压缩功能
tar -zcvf test.tar.gz test/ #将test文件夹做为归档文件
tar -cvf test.tar test #打包一个目录
tar -cf output.tar file1 file2 file3 folder1... #参数-c表示创建文件,-f表示指定文件。
tar -cf output.tar *.txt #归档所有.txt文件
tar -rvf file.tar new_file.txt #向归档文件file.tar追加一个文件。
tar -tf file.tar #列出归档文件中的内容
tar -xf file.tar #参数-x表示提取文件或文件夹。将内容提取到当前文件夹
tar -xf file.tar -C /data/test #参数-c表示提取文件到指定目录
tar -xvf file.tar file3 file6 #提取指定的几个文件,忽略其他文件
tar -Af file.tar file2.tar #合并多个归档文件
tar -tvf file.tar #查看合并归档文件是否成功
tar -uvvf file.tar #查看归档文件中某个特定文件的时间戳
tar -df file.tar file1 file2 ... #比较归档文件中的文件与系统中的同名文件是否有差别。-d打印出差别。
tar -f file.tar --delete file1 file2 ... #使用--delete选项从归档文件中删除指定的文件
tar --delete --file file.tar file1 file2 ... #同上
tar -cf file.tar * --exclude "*.txt" #排除归档中所有.txt文件
tar -cf file.tar * -X list.txt #排除归档中所有在list.txt中列出的文件。
tar -cf file.tar * --exclude "*.txt" --totals #选项--totals再归档完成后打印出总归档字节数
tar -czvvf file.tar.gz file1 file2 ... #创建经由gzip压缩过的归档文件
tar -cavvf file.tar.gz file1 file2 ... #同上
tar -zxvf php-7.2.0.tar.gz -C /data/myfile #解压php-7.2.0.tar.gz 到/data/myfile文件夹下,-C 指定要解压到的目标文件夹
tar选项
-A:将tar文件添加到现有归档的末尾。
-c:创建一个新的归档文件。
-C:解包时指定释放的目标文件夹
-d:使用指定的文件系统比较归档。
-j:用bzip压缩归档。
-r:将文件添加到现有归档的末尾。
-t:列出现有归档的内容。
-u:更新归档。
-x:从现有归档解压文件。
-f:表示使用归档文件。
-v:输出详细信息
-z:用gzip压缩归档。
–delete:从现有归档删除文件。
gzip filename #压缩文件。删除原文件并生成filename.gz
gzip -l test.txt.gz #列出压缩文件的属性信息
gunzip filename.gz #解压文件。删除filename.gz并生成filename.gz的未压缩形式
gzip参数:
-c, --stdout write on standard output, keep original files unchanged
-d, --decompress decompress 解压
-f, --force force overwrite of output file and compress links
-h, --help give this help
-k, --keep keep (don't delete) input files
-l, --list list compressed file contents
-L, --license display software license
-n, --no-name do not save or restore the original name and time stamp
-N, --name save or restore the original name and time stamp
-q, --quiet suppress all warnings
-r, --recursive operate recursively on directories
-S, --suffix=SUF use suffix SUF on compressed files
-t, --test test compressed file integrity
-v, --verbose verbose mode
-V, --version display version number
-1, --fast compress faster
-9, --best compress better
--rsyncable Make rsync-friendly archive
zip file.zip file #压缩file文件,生成file.zip压缩文件,压缩完不会删除原文件
zip -r file.zip folder file #对目录和文件进行递归操作
zip file.zip -u newfile #更新file.zip中的内容
zip -d file.zip test.txt #从压缩文件file.zip中删除文件test.txt
unzip file.zip #解压缩文件,解压后不会删除原压缩文件
unzip -l file.zip #只列出文件中的内容
远程复制备份:
rsync (ubuntu安装相关软件包:sudo apt-get install rsync)
rsync -av source_path destination_path #以递归方式将源目录复制到目的端,-a表示进行归档,-v表示在stdout打印细节信息及进度
rsync -av source_path username@host:path #将本地的目录递归赋值到远程主机上例如:rsync -av /data/test ubuntu@192.168.0.8:/home/backup
rsync -avz source destination #参数-z表示在网络传输时使用数据压缩
rsync -av /home/test/ /home/backups #复制test目录中的内容到目的端
rsync -av /home/test /home/backups #在目的端创建backups目录并将源端/home/test目录复制到此目录中。
rsync -av /home/test /home/backups/ #将源端/home/test 的内容复制到已有的目录backups中
rsync -avz /home/code /mnt/backup/ --exclude "*.txt" #选项--exclude将不需要进行更新的文件排除掉
rsync -avz /home/code /mnt/backup/ --exclude-from /data/filelist.txt #选项--exclude-from将文件filelist.txt中列出的文件排除掉。
rsync -avz source destination --delete #选项--delete表示复制归档时,删除目的端那些在源端已经不存在的文件。
rsync -Pa -I –size-only –delete –timeout=300 Remote_IP:/home/ubuntu /backup #使用ssh方式同步远程数据到本地目录
scp:secure copy
scp root@192.168.1.132:/data/log.zip /data/test #通过ssh将远程文件拷贝回本地
scp -r root@192.168.1.132:/data/test /data/test #通过ssh将远程目录递归拷贝回本地/data/test目录
scp /data/test.tar.gz ubuntu@192.168.1.75:/data/test #通过ssh将本地文件拷贝到远程主机
scp -P 4588 ubuntu@www.xxx.com:/data/test.sh /data/test #选项-P指定端口将远程主机文件拷贝会本地
其他参数选项:
-1 强制scp命令使用协议ssh1
-2 强制scp命令使用协议ssh2
-4 强制scp命令只使用IPv4寻址
-6 强制scp命令只使用IPv6寻址
-B 使用批处理模式(传输过程中不询问传输口令或短语)
-C 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p 保留原文件的修改时间,访问时间和访问权限。
-q 不显示传输进度条。
-r 递归复制整个目录。
-v 详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
-c cipher 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
-F ssh_config 指定一个替代的ssh配置文件,此参数直接传递给ssh。
-i identity_file 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
-l limit 限定用户所能使用的带宽,以Kbit/s为单位。
-o ssh_option 如果习惯于使用ssh_config(5)中的参数传递方式,
-P port 注意是大写的P, port是指定数据传输用到的端口号
-S program 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。
----------------------------------------------------------------
定期远程自动增量备份脚本,使用crontab做自动执行
#!/bin/bash
find / -mtime 0 ! -type d > /tmp/backup_list 2> /dev/null #找出当天修改的非目录文件,结果重定向到/tmp/backup_list文件中
cd /tmp
filename=`data"+%F"` #得到当天日期并赋值给变量
tar -T backup_list zcvf ${filename}.back.tar.gz #以给定文件名归档并压缩文件
#将备份文件上传到远程服务器上
ftp -n<<-ALIST
open 192.168.12.12 6789
user xst 123456
binary #设定以二进制方式传输文件
cd /home/xst/backup #进入远程服务器的备份目录
lcd /tmp #进入当前计算机中的/tmp目录
put *.back.tar.gz #推送到远程服务器
bye
ALIST
rm -f ${filename}.back.tar.gz
exit 0
----------------------------------------------------------------
进程:
ps #查看进程信息
ps -A #查看当前有哪些进程
ps -f #参数-f可以显示包含更多的列
ps -e #显示系统所有进程信息
ps -ax #同上
ps -ef #显示比较完整的进程信息。或者ps -ax或ps -axf
ps -eo “%C : %p : %z : %a”|sort -k5 -nr #按内存从大到小排列进程
ps -eo “%C : %p : %z : %a”|sort -nr #按cpu利用率从大到小排列进程
ps -eal | awk ‘{ if ($2 == “Z”) {print $4}}’ | sudo kill -9 #清除僵死进程
ps auxw|head -1;ps auxw|sort -rn -k4|head -40 #查看消耗内存最多的前40个进程
ps -ef | grep php-fpm | grep pool | wc -l #查看服务器上一共开了多少的 php-cgi 进程
ps -ef | grep docker #查看docker相关进程
pgrep php-fpm #查找php-fpm的进程id ,跟 ps -ef | grep php-fpm 同理
kill -l #打印出信号数和信号名称
kill -s SIGNAL PID #向指定进程发送信号,SIGNAL要么为信号数,要么为信号名称,如下:
SIGHUP 1:对控制进程或终端进行挂起检测
SIGINT 2:当按下Ctrl+C时发送该信号
SIGKILL 9:用于强行杀死进程
SIGTERM 15:默认用于终止进程
SIGTSTP 20:当按下Ctrl+Z时发送该信号
kill -s SIGKILL PID #杀死PID对应的进程
kill -9 PID #同上,杀死PID对应的进程
killall -9 gedit #通过进程名称杀死进程
killall php-fpm #杀死所有php-fpm进程
pgrep php-fpm | xargs kill -9 #杀死所有php-fpm的进程id,包括主进程和工作进程,pgrep = ps +grep
pkill -9 php-fpm # 作用同上, 相当于 pgrep php-fpm | xargs kill -9
pkill php-fpm #同上
ps -ef | grep nginx | grep -v grep | cut -c 9-15 | xargs kill -s 9 #说明如下
说明:
“grep firefox”的输出结果是,所有含有关键字“firefox”的进程。
“grep -v grep”是在列出的进程中去除含有关键字“grep”的进程。
“cut -c 9-15”是截取输入行的第9个字符到第15个字符,而这正好是进程号PID。
“xargs kill -s 9”中的xargs命令是用来把前面命令的输出结果(PID)作为“kill -s 9”命令的参数,并执行该命令。“kill -s 9”会强行杀掉指定进程。
后台运行:
nohup php test.php & #将php test.php 指令挂到后台执行,并且终端不向系统发送hangup信号,即终端关闭了指令依然执行。
setsid sh test.sh #作用同上,原理是使指令的执行进程不属于当前终端,而是属于init进程。故当前终端(进程)关闭,指令依然执行。
(php test.php &) # 将指令放到括号中,表示用子shell执行。&表示放到后台执行。这样将使指令的执行跳出当前终端进程,作用及原理同上。
上传下载:
sudo apt install lrzsz
sz filename #将filename文件发送到本地,默认地址:C:\Users\[Administrator]\AppData\Roaming\NetSarang\Xshell\Received Files
rz #进入一个目录执行rz命令,在弹出框中选择要上传的文件即可
linux学习:归档,备份及进程相关命令用法整理的更多相关文章
- linux学习:文件处理相关命令用法整理(正则表达式)
指令:ls.cat.du.rename.dirname.basename.sort.diff.seq.head.tail.tree.chmod.cut.paster.正则 一:统计文件大小,行数,字符 ...
- Linux学习笔记:7个ssh命令用法
通过远程控制管理多台服务器. 远程工具:telnet.ssh.vnc ssh采用密文的传输方式,简单安全.Secure Shell 缩写 SSH. 1.基本用法 ssh 192.168.1.1 默认使 ...
- linux学习:sed与awk与tr用法整理
流编辑器:sed 语法:sed [-hnV][-e<script>][-f<script文件>][文本文件] 参数: -e<script>或--expression ...
- Linux进程相关命令使用场景
Linux进程相关命令使用场景 在Linux系统上工作时,我们常常会碰到很多和进程相关的查询场景,今天在这里进行详细的讲解,进程相关的对象包括以下几个: 端口:Port 进程号:PId 执行文件所在路 ...
- Linux学习之路-Linux-at及cron命令【7】---20171215
Linux学习之路-Linux-at及cron命令[7]---20171215 DannyExia000人评论986人阅读2017-12-24 17:28:03 ntpdate 命令 [root@ ...
- linux学习:特殊符号,数学运算,图像与数组与部分终端命令用法整理
指令:let.expr.array.convert.tput.date.read.md5.ln.apt.系统信息 一:特殊符号用法整理 系统变量 $# 是传给脚本的参数个数 $0 是脚本本身的名字 $ ...
- Linux学习之十四、管线命令
Linux学习之十四.管线命令 地址:http://vbird.dic.ksu.edu.tw/linux_basic/0320bash_6.php
- Linux学习之RPM包管理-rpm命令管理(十六)
Linux学习之RPM包管理-rpm命令管理 目录 简介 RPM包依赖性 包全名与包名 rpm软件包安装 rpm软件包卸载 升级降级rpm软件包 rpm软件包的查询 rpm软件包校验 简介 RPM是R ...
- Linux Shell脚本入门--wget 命令用法详解
Linux Shell脚本入门--wget 命令用法详解 wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能 ...
随机推荐
- 使用Spring-Integration实现http消息转发
目标:接收来自华为云的服务器报警信息,并转发到钉钉的自定义机器人中 使用Spring-Integration不仅节省了很多配置,还增加了可用性. 更多关于Spring-Integration的介绍可参 ...
- JavaScript IIEF 模仿块级作用域
前言 JavaScript没有块级作用域的概念.但是通过IIEF 立即执行函数我们可以实现块级作用域. function outputNumbers(count){ for (var i=0; i & ...
- 2.12 for循环
for循环 像while循环一样,for可以完成循环的功能. 在Python中 for循环可以遍历任何序列的项目,如一个列表或者一个字符串等. for循环的格式 for 临时变量 in 列表或者字符串 ...
- HEAD FILE
心血来潮做的沙雕Head,喜欢就拿去用吧,Explosion! HEAD //#pragma comment(linker, "/STACK:1024000000,1024000000&qu ...
- 分别基于TensorFlow、PyTorch、Keras的深度学习动手练习项目
×下面资源个人全都跑了一遍,不会出现仅是字符而无法运行的状况,运行环境: Geoffrey Hinton在多次访谈中讲到深度学习研究人员不要仅仅只停留在理论上,要多编程.个人在学习中也体会到单单的看理 ...
- 获取多<a/>标签id值的点击事件
<li> <div class="pic"> <c:if test="${userId != null }"> <a ...
- Linux -- Xshell ,Xftp远程连接中文乱码怎么解决?
### 这几天开始捣鼓lnmp的环境搭建,很多东西还是得自己去经历,才会印象深刻,有所体会,有所收获与成长! 但是,偶尔会遇到一些意想不到问题! Xshell ,Xftp 远程连接的时候出现中文乱码的 ...
- linux 批量测试域名返回码脚本
需求:应用要求覆盖host并测试 1.创建一个host.txt的文件来存放需要修改的host记录 2.过滤出host.txt域名列并新生成一个curl.txt文件 cat host.txt |awk ...
- Java_Runtime&Process&ProcessBuilder
目录 一.Runtime类 二.Process类 三.ProcessBuilder类 在Java中想调用外部程序,或者执行命令和可运行文件时,网上的典型实例一般都是通过Runtime.getTime( ...
- ssm实现图片上传
在使用ssm完成前后端对接时,总免不了前台传过来的文件问题,而html中的<input>框直接使用时,往往会获取不到路径,今天在完成图片上传后的来做个总结 首先,前台页面 <!DOC ...