Linux基础命令

Mr.Bai 727 浏览 0

ssh

语法

1 
$ ssh username@hostname -p port 

示例

例如:
主机名:192.168.0.110
端口:22
用户名:root

1 
$ ssh [email protected] -p 22 

scp

语法

scp [参数] [原路径] [目标路径]

参数

-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)的选项。

示例

复制文件:

命令格式:

1 
$ scp local_file remote_username@remote_ip:remote_folder 

或者

1 
$ scp local_file remote_username@remote_ip:remote_file 

或者

1 
$ scp local_file remote_ip:remote_folder 

或者

1 
$ scp local_file remote_ip:remote_file 

第1,2个指定了用户名,命令执行后需要输入用户密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名
第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名

复制目录:

命令格式:

1 
$ scp -r local_folder remote_username@remote_ip:remote_folder 

或者

1 
$ scp -r local_folder remote_ip:remote_folder 

第1个指定了用户名,命令执行后需要输入用户密码;
第2个没有指定用户名,命令执行后需要输入用户名和密码。

应用软件

Extundelete

Extundelete介绍

extundelete是基于Linux的一个数据恢复工具,它通过分析文件系统的日志,解析出所有文件的inode信息,从而可以恢复Linux下主流的ext3,ext4文件系统下被误删除的文件。

Extundelete安装

安装Development Tools
1 
$ yum groupinstall "Development Tools" -y 

安装依赖包

1 
$ yum install e2fsprogs-devel.x86_64 -y 

下载extundelete

1 
$ wget https://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2 

安装extundelete

1 2 3 4 5 
$ tar jxf extundelete-0.2.4.tar.bz2 $ cd extundelete-0.2.4 $ ./configure $ make $ make install 

验证安装

1 
$ extundelete --help 

extundelete用法

命令格式

1 
extundelete [option] [action] device-file 

[option]参数

– version,-[Vv],显示软件版本号
– help,显示软件帮助信息
– superblock,显示超级块信息
– journal,显示日志信息
– after dtime,时间参数,表示在某段时间之后被删的文件或目录
– before dtime,时间参数,表示在某段时间之前被删的文件或目录

[action]参数

– inode ino,显示节点“ino”的信息
– block blk,显示数据块“blk”的信息
– restore-inode ino[,ino,…],恢复命令参数,表示恢复节点“ino”的文件,恢复的文件会自动放在当前目录下的RESTORED_FILES文件夹中,使用节点编号作为扩展名
– restore-file ‘path’,恢复命令参数,表示将恢复指定路径的文件,并把恢复的文件放在当前目录下的RESTORED_FILES目录中
– restore-files ‘path’,恢复命令参数,表示将恢复在路径中已列出的所有文件
– restore-all,恢复命令参数,表示将尝试恢复所有目录和文件

  • j journal,表示从已经命名的文件中读取扩展日志
  • b blocknumber,表示使用之前备份的超级块来打开文件系统,一般用于查看现有超级块是不是当前所要的文件
  • B blocksize,通过制定数据块大小来打开文件系统,一般用于查看已经知道大小的文件

extundelete实战

查询可恢复的数据信息

1 
$ extundelete /dev/sdb1 --inode 2 

恢复单个文件

1 
$ extundelete /dev/sdb1 --restore-file passwd 

恢复单个目录

1 
$ extundelete /dev/sdb1 --restore-directory network-scripts 

恢复所有删除数据

1 
$ extundelete /dev/sdb1 --restore-all 

恢复某个时间段数据

1 2 3 
$ date +%s 1449027652 $ extundelete --after 1449020452 --restore-all /dev/sdb1 

在上面的例子中恢复的是两个小时之内被删除的文件。

在这个操作过程中,需要注意的是“–after”参数后面跟的时间是个总秒数。起算时间是“1970-01-01 00:00:00 UTC”,通过”date +%s”命令即可将当前时间转换为总秒数,因为恢复的是两个小时之内的数据,所以“1449020452”这个值就是通过“1449027652”减去“60602=7200”获得的。

常见问题

ECDSA host key has changed错误

问题描述

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 
ssh-copy-id [email protected] /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/Users/iamwlb/.ssh/id_rsa.pub" /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed  /usr/bin/ssh-copy-id: ERROR: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ERROR: @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @ ERROR: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ERROR: IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! ERROR: Someone could be eavesdropping on you right now (man-in-the-middle attack)! ERROR: It is also possible that a host key has just been changed. ERROR: The fingerprint for the ECDSA key sent by the remote host is ERROR: SHA256:EGV0iIDO1uf/rsxSRaaCVD/2vRECD8pv0E83gBFfy9s. ERROR: Please contact your system administrator. ERROR: Add correct host key in /Users/iamwlb/.ssh/known_hosts to get rid of this message. ERROR: Offending ECDSA key in /Users/iamwlb/.ssh/known_hosts:4 ERROR: ECDSA host key for 192.168.100.11 has changed and you have requested strict checking. ERROR: Host key verification failed. 

解决办法

从本地机器移除192.168.100.11的缓存

1 
$ ssh-keygen -R 192.168.100.11 

CentOS下ifconfig command not found

CentOS7.0默认是没有安装net-tools,会导致输入ifconfig命令找不到。
解决办法:

1 2 
$ yum upgrade $ yum install net-tools 

another app is currently holding the yum lock;waiting for it to exit错误

问题描述

使用yum命令时,提示“another app is currently holding the yum lock;waiting for it to exit”。

解决办法

1 
$ rm -f /var/run/yum.pid 

CentOS重启后NTP服务失败解决办法

问题描述

CentOS7,重启后ntp服务失败,报错如下:

1 2 
$ ntpq -p ntpq: read: Connection refused 

解决办法

1 
$ systemctl disable chronyd 

参考

https://www.centos.org/forums/viewtopic.php?t=58530

发表评论 取消回复
表情 图片 链接 代码

分享
请选择语言