commit
This commit is contained in:
parent
4b14d832c5
commit
f78bb9f547
@ -443,6 +443,110 @@ chmod u-w /etc/sudoers
|
|||||||
|
|
||||||
这样普通用户就可以使用sudo了.
|
这样普通用户就可以使用sudo了.
|
||||||
|
|
||||||
|
### 修改目录权限
|
||||||
|
|
||||||
|
**查看当前目录权限**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo ls -ld /OLAP
|
||||||
|
```
|
||||||
|
|
||||||
|
输出实例:
|
||||||
|
|
||||||
|
`drwxr-xr-x 5 root root 4096 Aug 5 08:27 /OLAP`
|
||||||
|
|
||||||
|
**修改目录权限**
|
||||||
|
|
||||||
|
使当前用户(假设为 `user`)能够对 `/OLAP`目录进行读写操作,可以将目录权限修改为`775`(即`rwxrwxr-x`):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo chmod 775 /OLAP
|
||||||
|
```
|
||||||
|
|
||||||
|
这样,目录的所有者和所属组的用户都可以读写该目录,其他用户则由读取和执行权限。
|
||||||
|
|
||||||
|
**将当前用户加入目录所属组**
|
||||||
|
|
||||||
|
如果目录所属组是`root`,可以将当前用户`user`加入`root`组(不推荐,因为`root`组权限过高):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo usermod -aG root user
|
||||||
|
```
|
||||||
|
|
||||||
|
然后,重新登录或重启系统以使组变更生效。
|
||||||
|
|
||||||
|
### 更改目录的所有者
|
||||||
|
|
||||||
|
**查看当前目录的所有者**
|
||||||
|
|
||||||
|
查看`/OLAP`目录的当前所有者:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo ls -ld /OLAP
|
||||||
|
```
|
||||||
|
|
||||||
|
**更改目录的所有者**
|
||||||
|
|
||||||
|
将`/OLAP`目录的所有者更改为当前用户(假设为`user`):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo chown user:user /OLAP
|
||||||
|
```
|
||||||
|
|
||||||
|
这样,当前用户将拥有对该目录的完全控制权。
|
||||||
|
|
||||||
|
### 使用 ACL(访问控制列表)
|
||||||
|
|
||||||
|
> ACL 提供了更细粒度的权限控制,允许为特定用户或组设置特定权限。
|
||||||
|
|
||||||
|
**安装 ACL 工具**
|
||||||
|
|
||||||
|
在某些系统中,ACL 工具可能未默认安装,可以通过以下命令安装:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo apt install acl -y
|
||||||
|
sudo dnf insyall acl -y
|
||||||
|
```
|
||||||
|
|
||||||
|
**设置 ACL 权限**
|
||||||
|
|
||||||
|
为当前用户(假设为`user`)设置读写权限:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo setfacl -m u:user:rwx /OLAP
|
||||||
|
```
|
||||||
|
|
||||||
|
这样,`user`用户将获得对`/OLAP`目录的读写权限,而不会影响其他用户的权限。
|
||||||
|
|
||||||
|
**验证 ACL 权限**
|
||||||
|
|
||||||
|
查看当前目录的 ACL 权限:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
getfacl /OLAP
|
||||||
|
```
|
||||||
|
|
||||||
|
输出实例:
|
||||||
|
```
|
||||||
|
getfacl: Removing leading '/' from absolute path names
|
||||||
|
# file: OLAP
|
||||||
|
# owner: user
|
||||||
|
# group: user
|
||||||
|
user::rwx
|
||||||
|
group::r-x
|
||||||
|
other::r-x
|
||||||
|
```
|
||||||
|
|
||||||
|
### 更改目录的默认权限(可选)
|
||||||
|
|
||||||
|
如果要将新创建的文件和子目录自动继承特定权限,可以设置默认 ACL:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo setfacl -dm u:user:rwx /OLAP
|
||||||
|
```
|
||||||
|
|
||||||
|
这样,新创建的文件和子目录将自动继承 `user` 用户的读写权限。
|
||||||
|
|
||||||
## Shell 脚本
|
## Shell 脚本
|
||||||
|
|
||||||
### 为什么大多数 shell 脚本都包含 #! /bin/bash 在 shell 脚本的开头?
|
### 为什么大多数 shell 脚本都包含 #! /bin/bash 在 shell 脚本的开头?
|
||||||
|
|||||||
@ -44,3 +44,120 @@ echo "* hard nproc 65536" >> /etc/security/limits.conf
|
|||||||
ulimit -n 65536
|
ulimit -n 65536
|
||||||
```
|
```
|
||||||
|
|
||||||
|
# Datax
|
||||||
|
|
||||||
|
## MySQL离线同步至Apache Doris
|
||||||
|
|
||||||
|
### 单表同步
|
||||||
|
|
||||||
|
新建配置文件`mysql_2_doris_t_base_material.json`
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"job": {
|
||||||
|
"setting": {
|
||||||
|
"speed": {
|
||||||
|
"channel": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"content": [
|
||||||
|
{
|
||||||
|
"reader": {
|
||||||
|
"name": "mysqlreader",
|
||||||
|
"parameter": {
|
||||||
|
"username": "root",
|
||||||
|
"password": "123456",
|
||||||
|
"column": [
|
||||||
|
"ID", "PID", "CODE", "SHORTCODE", "NAME", "FULLNAME",
|
||||||
|
"ISDETAIL", "CHILDCOUNT", "PYCODE", "LVL", "FLAG", "MODEL",
|
||||||
|
"ISSTANDARD", "AUXCLASSID", "ERPCLSID", "UNITGROUPID", "UNITID",
|
||||||
|
"DEFAULTLOC", "SPID", "QTYDECIMAL", "SECINV", "MTYPE", "MVER",
|
||||||
|
"MATERIAL", "FIRM", "FIRMORDER", "FACEDEAL", "SHAPESIZE",
|
||||||
|
"TECHDESC", "UNITWEIGHT", "MCODE", "MCAT", "COSTITEM",
|
||||||
|
"ORDERRECTOR", "POHIGHPRICE", "POHGHPRCMNYTYPE", "WWHGHPRC",
|
||||||
|
"WWHGHPRCMNYTYPE", "SOLOWPRC", "SOLOWPRCMNYTYPE", "TRACK",
|
||||||
|
"PRICEDECIMAL", "ACCTID", "SALEACCTID", "COSTACCTID",
|
||||||
|
"DEFAULTROUTINGID", "DEFAULTWORKTYPEID", "PRODUCTPRINCIPAL",
|
||||||
|
"PLANNER", "ISBACKFLUSH", "MRPCON", "MRPORDER", "CHARTNUMBER",
|
||||||
|
"INSPECTIONLEVEL", "PROCHKMDE", "WWCHKMDE", "SOCHKMDE",
|
||||||
|
"WTHDRWCHKMDE", "STKCHKMDE", "OTHERCHKMDE", "INSPECTIONPROJECT",
|
||||||
|
"NAMEEN", "MODELEN", "HSNUMBER", "IMPOSTTAXRATE",
|
||||||
|
"CONSUMETAXRATE", "STARTSERVICE", "MAKEFILE", "ISFIX",
|
||||||
|
"TTERMOFSERVICE", "TTERMOFUSEFULTIME", "PRODUCTNO", "PARAMVALUE",
|
||||||
|
"MEMO", "CDATE", "CUSERID", "CSTAFFNAME", "MDATE", "MUSERID",
|
||||||
|
"MSTAFFNAME", "K_ID", "K_PID", "DDATE", "DUSERID", "DSTAFFNAME",
|
||||||
|
"K_CODE", "AMODEL", "K_COSTITEM", "DWGSYMDESC", "SPDESC",
|
||||||
|
"CDRATE", "GWEIGHT", "NWEIGHT", "L", "W", "H", "MSIZE",
|
||||||
|
"K_COST", "BATCHAPPLICANT", "MATSLUGGISHSTATUS",
|
||||||
|
"SLUGGISHEFFECTIVEDATE", "K_AUTO_ID", "FRATE", "K3CLOUDID"
|
||||||
|
],
|
||||||
|
"connection": [
|
||||||
|
{
|
||||||
|
"table": ["t_base_material"],
|
||||||
|
"jdbcUrl": ["jdbc:mysql://192.168.6.35:3306/erp?useSSL=false&serverTimezone=Asia/Shanghai"],
|
||||||
|
"selectedDatabase": "erp"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"writer": {
|
||||||
|
"name": "doriswriter",
|
||||||
|
"parameter": {
|
||||||
|
"loadUrl": ["192.168.6.35:8040"],
|
||||||
|
"username": "root",
|
||||||
|
"password": "",
|
||||||
|
"column": [
|
||||||
|
"ID", "PID", "CODE", "SHORTCODE", "NAME", "FULLNAME",
|
||||||
|
"ISDETAIL", "CHILDCOUNT", "PYCODE", "LVL", "FLAG", "MODEL",
|
||||||
|
"ISSTANDARD", "AUXCLASSID", "ERPCLSID", "UNITGROUPID", "UNITID",
|
||||||
|
"DEFAULTLOC", "SPID", "QTYDECIMAL", "SECINV", "MTYPE", "MVER",
|
||||||
|
"MATERIAL", "FIRM", "FIRMORDER", "FACEDEAL", "SHAPESIZE",
|
||||||
|
"TECHDESC", "UNITWEIGHT", "MCODE", "MCAT", "COSTITEM",
|
||||||
|
"ORDERRECTOR", "POHIGHPRICE", "POHGHPRCMNYTYPE", "WWHGHPRC",
|
||||||
|
"WWHGHPRCMNYTYPE", "SOLOWPRC", "SOLOWPRCMNYTYPE", "TRACK",
|
||||||
|
"PRICEDECIMAL", "ACCTID", "SALEACCTID", "COSTACCTID",
|
||||||
|
"DEFAULTROUTINGID", "DEFAULTWORKTYPEID", "PRODUCTPRINCIPAL",
|
||||||
|
"PLANNER", "ISBACKFLUSH", "MRPCON", "MRPORDER", "CHARTNUMBER",
|
||||||
|
"INSPECTIONLEVEL", "PROCHKMDE", "WWCHKMDE", "SOCHKMDE",
|
||||||
|
"WTHDRWCHKMDE", "STKCHKMDE", "OTHERCHKMDE", "INSPECTIONPROJECT",
|
||||||
|
"NAMEEN", "MODELEN", "HSNUMBER", "IMPOSTTAXRATE",
|
||||||
|
"CONSUMETAXRATE", "STARTSERVICE", "MAKEFILE", "ISFIX",
|
||||||
|
"TTERMOFSERVICE", "TTERMOFUSEFULTIME", "PRODUCTNO", "PARAMVALUE",
|
||||||
|
"MEMO", "CDATE", "CUSERID", "CSTAFFNAME", "MDATE", "MUSERID",
|
||||||
|
"MSTAFFNAME", "K_ID", "K_PID", "DDATE", "DUSERID", "DSTAFFNAME",
|
||||||
|
"K_CODE", "AMODEL", "K_COSTITEM", "DWGSYMDESC", "SPDESC",
|
||||||
|
"CDRATE", "GWEIGHT", "NWEIGHT", "L", "W", "H", "MSIZE",
|
||||||
|
"K_COST", "BATCHAPPLICANT", "MATSLUGGISHSTATUS",
|
||||||
|
"SLUGGISHEFFECTIVEDATE", "K_AUTO_ID", "FRATE", "K3CLOUDID"
|
||||||
|
],
|
||||||
|
"postSql": ["select count(1) from t_base_material"],
|
||||||
|
"preSql": [],
|
||||||
|
"flushInterval":30000,
|
||||||
|
"connection": [
|
||||||
|
{
|
||||||
|
"jdbcUrl": "jdbc:mysql://192.168.6.35:9030/erp",
|
||||||
|
"selectedDatabase": "erp",
|
||||||
|
"table": ["t_base_material"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"loadProps": {
|
||||||
|
"format": "json",
|
||||||
|
"strip_outer_array":"true",
|
||||||
|
"line_delimiter": "\\x02"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
执行任务
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd datax
|
||||||
|
python ./bin/datax.py mysql_2_doris_t_base_material.json
|
||||||
|
```
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user