linux - QLGQ/learning-python GitHub Wiki

SCP

功能说明

scp就是security copy,用于将文件或者目录从一个Linux系统拷贝到另一个Linux系统下。scp传输数据用的是SSH协议,保证了数据传输的安全,其格式如下:

  • scp 远程用户名@IP地址:文件的绝对路径 本地Linux系统路径
  • scp 本地Linux系统文件路径 远程用户名@IP地址:远程系统文件绝对路径名

scp使用第一种格式是将远程Linux系统上的某个文件或者目录拷贝到本地Linux上来,使用第二种是将本地的某个文件或者目录拷贝到远程Linux系统的某个路径下。

举例

  1. scp /home/ixdba/etc.tar.gz [email protected]:/tmp
  2. scp [email protected]:/home/ixdba/etc.tar.gz /tmp

如果远程服务器防火墙有为scp命令设置了指定的端口,我们需要使用 -P 参数来设置命令的端口号,例如:scp -P 62222 [email protected]:/home/ixdba/etc.tar.gz /tmp

Linux下查看文件和文件夹大小

当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。
df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。
du可以查看文件及文件夹的大小。

df命令

**df:可以显示目前所有文件系统的可用空间及使用情形。**请看下列这个例子:

[root@controller longrise]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   18G  5.4G   13G   31% /
devtmpfs                 2.0G     0  2.0G    0% /dev
tmpfs                    2.0G     0  2.0G    0% /dev/shm
tmpfs                    2.0G   42M  1.9G    3% /run
tmpfs                    2.0G     0  2.0G    0% /sys/fs/cgroup
/dev/sda1                497M  188M  309M   38% /boot
tmpfs                    394M   12K  394M    1% /run/user/42
tmpfs                    394M     0  394M    0% /run/user/1000

du命令

du:查询文件或文件夹的磁盘使用情况。
如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小.


以下是代码片段:

[root@bsso yayu]# du -h --max-depth=1 work/testing
27M     work/testing/logs
35M     work/testing

[root@bsso yayu]# du -h --max-depth=1 work/testing/*
8.0K    work/testing/func.php
27M     work/testing/logs
8.1M    work/testing/nohup.out
8.0K    work/testing/testing_c.php
12K     work/testing/testing_func_reg.php
8.0K    work/testing/testing_get.php
8.0K    work/testing/testing_g.php
8.0K    work/testing/var.php

[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/
27M     work/testing/logs/

[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/*
24K     work/testing/logs/errdate.log_show.log
8.0K    work/testing/logs/pertime_show.log
27M     work/testing/logs/show.log

systemctl VS service

centos7 上面启动服务以及关闭服务已经不是以前的service xxxx stop/start了而是systemctl命令。

service

service是一个脚本命令,分析service可知是去/etc/init.d目录下执行相关程序。service和chkconfig结合使用。
服务配置文件存放目录是/etc/init.d/

 # 启动sshd服务
service sshd start
# 设置sshd服务开机启动
chkconfig sshd start

systemd

centos7版本中使用了systemd,systemd同时兼容service,对应的命令就是systemctl。
Systemd 是 Linux 系统中最新的初始化系统(init),它主要的设计目标是克服 sysvinit 固有的缺点,提高系统的启动速度。 使用systemd的目的是获取更快的启动速度,为了减少系统启动时间,systemdde目标是尽可能启动较少的进程,尽可能将更多进程并发启动,可以去查看系统进程的pid,initd的pid是0,如果支持systemd的系统的systemd进程pid为1。
systemd把不同的资源称为Unit,每一个 Unit 都有一个配置文件,告诉 Systemd 怎么启动这个 Unit。
存放目录:/etc/systemd/system和/usr/lib/systemd/system
systemctl融合service和chkconfig功能。

# 开启服务
systemctl start sshd.service
# 设置开机启动
systemctl enable sshd.service
# 本质上是建立一个软链接 ln -s /usr/lib/systemd/system/sshd.service /etc/systemd/system/multi-user.target.wants/sshd.service
  • 启动一个服务:systemctl start postfix.service
  • 关闭一个服务:systemctl stop postfix.service
  • 重启一个服务:systemctl restart postfix.service
  • 显示一个服务的状态:systemctl status postfix.service
  • 在开机时启用一个服务:systemctl enable postfix.service
  • 在开机时禁用一个服务:systemctl disable postfix.service
  • 查看服务是否开机启动:systemctl is-enabled postfix.service
  • 查看已启动的服务列表:systemctl list-unit-files|grep enabled
  • 查看启动失败的服务列表:systemctl --failed

使用命令 systemctl is-enabled postfix.service 得到的值可以是enable、disable或static,这里的 static 它是指对应的 Unit 文件中没有定义[Install]区域,因此无法配置为开机启动服务。启用服务就是在当前“runlevel”的配置文件目录/etc/systemd/system/multi-user.target.wants/里,建立/usr/lib/systemd/system里面对应服务配置文件的软链接;禁用服务就是删除此软链接,添加服务就是添加软连接。