linux同步的命令行 linux 同步数据

Linux常用命令

列出当前目录的文件

创新互联建站主营克东网站建设的网络公司,主营网站建设方案,成都App定制开发,克东h5微信小程序开发搭建,克东网站营销推广欢迎克东等地区企业咨询

常用参数: 

-a: 显示当前目录的所有文件,包含隐藏文件; 

-l: 显示文件详情; 

-Z: 显示文件的 SE Linux context。 

示例:ls -laZ [if !vml] [endif] 以 acct 为例: drwxr-xr-x:其中 d 代表该文件为目录,若为 l 则为软链接,软连接后又箭头代表其实际指向的文件,如etc - /system/etc 则访问 etc 实际等同访问/system/etc,留空则代表该文件为一个文件;rwxr-xr-x 代表其权限为 755,具体算法为将上述字段每 3 个分为 1 组得 rwx,r-x,r-x,凡是有字母标记的皆计数 1,反之为 0,得二进制 111,101,101,转为 10 进制数字即得7, 5,5 ,即为该文件权限; root root :依次代表该文件的所有者(owner)为 root,用户组(group)为 root,上述属性可通过 chown 命令修改,日常替换文件需与原文件该属性维持一致; unlabeled:代表 SE Linux context。

前往指定目录

更改文件所有者和用户组   示例:chown root:root temfile 将 tmpfile文件 的所有者和用户组从 meidia:media 更改为 root:root

将文件内容显示出来。

注意不要随便去 cat 一个很大的文件或与 log 驱动节点无关的文件,否则将造成串口输出乱码或死机!!!示例:cat /proc/kmsg 将打印出所有 kernel log。

用于抓取 android logcat 打印。

常用参数:

-v : 设置打印格式,可用选项为 brief process tag thread raw time threadtime long,我们比较常用 logcat -v time,此时抓的 log 将在每一行开头添加时间信息;

-s : 设置过滤器,过滤器的选择取决于软件中打印 log 时使用的 TAG ,如

ActivityManagerService.java 中的打印使用的 TAG = ActivityManager,则抓相关打印方法为 logcat -s ActivityManager;

-c : 清除 log 缓存,常用于清除之前的打印缓存,如复现某个必现问题,则可先执行 logcat -c 再抓 logcat 重现必现手法以排除无关 log 冗余信息影响问题定位; pm

包管理命令,用于管理安卓 app 应用。

常用参数:

-l : 显示所有安装包应用,等同于 pm list packages

以 package:/system/priv-app/Launcher2.apk=com.android.launcher 为例:

Apk Launcher2 路径位于/system/priv-app/Launcher2.apk,其包名为 com.android.launcher

path : 根据报名返回所在 apk 路径

install : 安装 apk

-r :安装一个已经存在的 apk 并保留其数据;

-d : 允许降级安装

如:pm install -r xxx.apk

uninstall : 卸载 apk,命令仅支持卸载 data/app,后接包名;

如:pm uninstall com.sys.migusmartlink.ott.tv //卸载包名为 com.sys.migusmartlink.ott.tv 的 apk

随机测试指令,会自动模拟一些用户操作对 APP 进行压力测试。

常用参数:

-p :指定启动的 APK,我们比较常用的是 monkey -p com.xxx.yyy 1 来启动一个 apk 的随机页面。

用于启动和管理 activity 和 service

常用参数:

start : 后接 intent 启动一个页面;

startservice : 后接 intent 启动一个 service; stopservice :后接 intent 停止一个 service; broadcast :后接一个 intent 发送一个广播; kill :后接一个 app 包名,杀掉该 app 所有进程;在 shell 环境下用如下参数表述一个 intent:

[-a ACTION] [-d DATA_URI] [-t MIME_TYPE]

[-c CATEGORY [-c CATEGORY] ...]

[-e|--es EXTRA_KEY EXTRA_STRING_VALUE ...]

[--esn EXTRA_KEY ...]

[--ez EXTRA_KEY EXTRA_BOOLEAN_VALUE ...]

[--ei EXTRA_KEY EXTRA_INT_VALUE ...]

[--el EXTRA_KEY EXTRA_LONG_VALUE ...]

[--ef EXTRA_KEY EXTRA_FLOAT_VALUE ...]

[--eu EXTRA_KEY EXTRA_URI_VALUE ...]

[--ecn EXTRA_KEY EXTRA_COMPONENT_NAME_VALUE]

[--eia EXTRA_KEY EXTRA_INT_VALUE[,EXTRA_INT_VALUE...]]

[--ela EXTRA_KEY EXTRA_LONG_VALUE[,EXTRA_LONG_VALUE...]]

[--efa EXTRA_KEY EXTRA_FLOAT_VALUE[,EXTRA_FLOAT_VALUE...]]

[-n COMPONENT] [-f FLAGS]

示例:

如我们在 logcat 抓到如下打印启动了播放器:

START u0 {act=android.intent.action.VIEW dat=[4KH265_60.000fps_9Mbps]Wetek-Astra-2m.mp4 typ=video/* flg=0x13000000 cmp=com.meson.videoplayer/.VideoPlayer} from pid 15204

则我们可以使用如下 am 指令来启动它:

am start -a android.intent.action.VIEW -d [4KH265_60.000fps_9Mbps]Wetek-Astra-2m.mp4 -t video/* -f 0x13000000 -n com.meson.videoplayer/.VideoPlayer am start -n com.android.settings/.Settings //启动原生安卓设置主页

am broadcast -a com.chinamobile.action.KEY_PRESS_DOWN --ei keyCode 11 am broadcast -a com.chinamobile.action.IR_TEST --es irphycode "0x008EDD22" //发送广播

查找命令,查找文件中是否包含指定字符串并输出该行示例:

grep -rns "repeat" /system/etc/remote1.conf //找出/system/etc/remote1.conf 所有包含 repeat 的行并展示行号

参数说明:

-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。

-d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。

-f:覆盖已经存在的目标文件而不给出提示。

-i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。

-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。

-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。

-l:不复制文件,只是生成链接文件。

命令示例:cp -a a  parentPath/sonPath/ a对应当前文件夹下目录或文件名  可替换为绝对路径 

移动指令,等效于 windows 的移动和重命名。

示例:

mv /data/tmp1 /data/local/tmp2 //将 data/tmp1移动到/data/local/ 并重命名为 tmp2

删除指令,用于删除文件和文件夹,示例:

rm -rf tmp // 删除 tmp,建议加上-rf参数,其会删除 tmp 所有的目录和文件。

创建目录。常用参数:

-p :若 mkdir -p 后接路径包含不存在路径则一并创建。

同步命令,常用于 cp 替换文件或指令结束后同步状态,有益无害。

重定向,即将一个命令的输出指向另外路径的文件,使用覆盖模式,即重定向到的文件若存在将覆盖里面的内容。

示例:

logcat /data/xxx.log; //将 logcat输出到/data/xxx.log;

cat /proc/kmsg /data/kmsg.log; //将 kmsg 打印输出重定向到/data/kmsg.log

重定向,即将一个命令的输出指向另外路径的文件,使用拼接模式,即重定向到的文件若存在则将输出拼接到原文件的后面。

示例:

logcat /data/xxx.log; //例如我们做 netreboot的时候需要每一次开关机的 log,则会用拼接模式记录log。

将指令放至后台静默执行。

依次执行指令,若有指令执行失败,则后续指令不会执行。

示例:

logcat -c logcat //先清除 logcat 缓存再抓取 log

linux上的rsync命令详解

rsync 就是远程同步的意思remote sync.

rsync 被用在UNIX / Linux执行备份操作操作.

rsync 工具包被用来从一个位置到另一个位置高效地同步文件和文件夹. rsync可以实现在同一台机器的不同文件直接备份,也可以跨服务器备份.

rsync 语法如下

从语法结构我们可以看出, 源和目标即可以在本地也可以在远端. 如果是远端的话,需要指明登录用户名, 远端服务器名, 和远端文件或目录. 同时源可以是多个, 目标位置只能是一个.

说明:

-z: --compress 使用压缩机制

-v: --verbose 打印详细信息

-r: --recursive 以递归模式同步子目录

注意: 同步完成后, 我们会发现文件的时间戳timestamps发生了改变.

有时我们希望拷贝或同步时, 时间戳不要发生变化, 源文件是什么时间戳,目标文件就是什么时间戳, 这时我们需要使用 -a --archive 归档模式选项. -a 选项相当于7个选项的组合 -rlptgoD

-r, --recursive: 递归模式Recursive mode

-l, --links: 将符号链接当作符号链接文件拷贝, 不拷贝符合链接指向的文件内容.

-p, --perms: 保留文件权限

-t, --times: 保留修改时间戳

-g, --group: 保留用户组信息

-o, --owner: 保留用户信息(需要超级用户权限)

-D, 相当于 --devices --specials 的组合, 保留设备文件, 保留特殊文件.

同步完成后, 我们再来看文件属性, 时间戳信息得到了保留, 不仅如此文件的所有者 和所在组也得到保留.

说明: Pubkeys 是一个普通文件

使用rsync, 也可以从本地拷贝多个文件或目录到远端, 以下即为示例:

注意:

与本地文件拷贝不同的地方在于, 当拷贝文件到远程服务器时, 我们指定远程主机上的用户名, 服务器地址, 路径等信息, 类是于使用scp命令拷贝, 如果没有设置ssh免密码登录我们还需要提供远程用户的密码等信息.有时你不想频繁输入密码, 或者rsync运行在一个无人执守的脚本里面, 这是需要预先设置ssh免密登录, 或者使用结合expect命令,自动输入密码, 但是出于安全考虑, 密码需要加密. 所以在条件许可的情况下, 还是推荐设置ssh免密登录.

与示例 4 稍有不同, 这时远端目录或文件作为源位置, 本地目录或文件作为目标位置, 示例如下:

rsync 允许指定远程主机上运行shell命令.

这时需要使用 -e 选项:

-e, --rsh=COMMAND 指定远端使用的shell命令

Use rsync -e ssh to specify which remote shell to use. In this case, rsync will use ssh.

在一下特殊的使用场景中, 我们不希望拷贝文件时, 我们不希望拷贝过程覆盖掉目标位置中用户做出的修改. 这时我们需要使用 -u 选项明确的告诉rsync命令保留用户在目标文件中作出的修改. 在下面的例子中, 文件Basenames是用户基于上次的拷贝, 修改过的文件, 当我们使用了-u 选项后, 该文件中的修改将不会被覆盖掉.

在某些特殊场景中, 我们只需要远程服务器上的目录结构, 而不希望花大量时间, 带宽拷贝文件内容, 这时我们可以使用 -d, --dirs选项来达到目的.

有时我们希望拷贝文件时, 能实时的显示拷贝进度, 以及传输速率等信息. 尤其是拷贝大文件时, 程序不输出信息, 用户往往无法区分程序是在响应中, 还是已经挂起, 在这种情况下如果使用 –progress 就会非常有帮助.

rsync –progress option displays detailed progress of rsync execution as shown below.

你也可以使用rsnapshot工具 (rsnapshot会调用rsync)来备份本地linux服务器, 或者备份远程linux服务器.

有时我们希望目标文件和源文件保持严格一致, 不要多文件也不要少文件, 这是我们可能需要使用 -delete 选项来达到目的. 如果使用 -delete 选项, rsync将删除目标位置多余的文件或文件夹. 此选项还可以结合--delete-excluded 选项一起使用, 添加一些例外的文件.

上述示例中, new-file.txt 是源文件中没有的文件, 其将会在拷贝时被删除掉.

在某些特殊的场景下, 我们只想更新, 目标位置已经存在的文件或目录, 而不关心源位置的新文件, 这时我们可以使用-existing 选项仅仅更新已经存在的文件.

让我们来验证一下这个选项的功能, 首先在源端添加一个新文件 new-file.txt.

从上面的例子可以看到, 由于加了--existing选项新文件new-file.txt没有被拷贝到目标位置

选项-i, --itemize-changes 非常有用, 当我们想了解目标位置和源位置的文件差异时.

在源端:

在目标端:

注意: 在上面的例子中, 源位置和目标位置有两处差异. 第一, 源文件Basenames的所有者和组 与 目标文件不同, 第一Dirnames文件大小也不一样.

现在让我们来看看rsync会怎样显示这些差异

输出信息只在相应文件前面显示了9个字母来标识改变, 这些字母具体是什么意思呢? 请参考以下详细说明

rsync 可以使用--include 和 --exclude 选项结合通配符进行文件或文件夹过滤

在上面的示例中, 仅仅以P打头的文件和文件夹被包含了进来, 其他的文件都被过滤在拷贝的过程中被排除在外了.

可以使用--max-size 告诉rsync 不要拷贝大小超过某个值的文件, 可以使用K, M, G指定文件大小, M for megabytes and G for gigabytes.

rsync 有个重要优点就是, 可以做到在拷贝的过程中, 只拷贝发生变化了的部分, 而不是发送整个文件.

但是在某些场景中, 比如文件较少, 文件size较小时, 我们的带宽又足够大, cpu资源相对又贫乏, 我们不希望它这样做, 因为毕竟计算源端和目标端的checksum, 并做对比, 也需要额外cpu开销. 这时我们可以使用 -W, --whole-file 选项, 让rsync不用计算那么多, 一上来就直接开始传送文件. 我们可以像下面这么做.

15个Rsync命令实例

linux系统时钟同步命令

1. date命令

#date 查看系统时间

#date -set “10/30/20 11:30” 设置月/日/年/ 时:分:秒

2.clock命令

#clock -show 查看硬件时间

3.硬件时间和系统时间同步

重新启动系统,硬件时间会读取系统时间,实现同步。

但是,不重启的情况下,需要用clock命令实现同步。

#clock -systohc

sync是什么意思车上的

汽车上的sync按键就是自动空调双/多温区的同步按钮。

一般是出现在比较高级的车辆车型上。车载空调双重意味着空调分区的控制键。空调分区是指在负荷分析的基础上,根据空调负荷差异,将整个空调区域合理划分为若干个温度控制区。分区的目的是使空调系统有效跟踪负荷变化,从而改善室内热环境,降低空调能耗。


文章名称:linux同步的命令行 linux 同步数据
网页网址:http://myzitong.com/article/dohdohs.html