文章目录
-
-
- 一、linux常见命令
-
- 1、统计
- 2、查看
-
- 2.1 find查找文件
- 2.2 字符串查找
- 2.3 查看文件文本
- 2.4 查看目录
- 2.5 查看端口号等
- 2.6 查看linux版本等
- 2.7 查看服务器资源环境等相关信息
- 3、切换路径
- 4、查看进程等
- 5、重启、关机
- 6、新建、删除文件和文件夹
- 7、修改文件/文件夹权限、所属组、所有者
-
- 7.1 改变文件权限
- 7.2 改变文件所属组
- 7.3 改变文件所有者
- 8、复制、移动
-
- 8.1 本地cp 复制文件/文件夹命令
- 8.2 远程scp复制文件/文件夹命令
- 8.3 mv 移动文件、目录或更名
- 9、解压缩
-
- 10、网络相关
-
- 11、安装/卸载软件、库包
-
- 11.1 apt-get安装软件
- 11.2 apt-get卸载软件
- 11.3 pip安装python库包
- 12、其它常见命令
- 二、docker和docker-compose相关命令
-
- 1、docker常见命令表格
- 2、通过容器提交镜像以及推送镜像笔记
- 3、dockerfile 制作镜像
- 4、docker-compose常见命令表格
- 三、git相关常用命令
-
- 1. 拉取代码库
- 2、更新代码库
- 3、删除远程分支
- 4、Git以一个远程分支为基础新建一个远程分支
- 5、提交修改
- 6、回退命令
- 四、通配符
-
- 五、job前端后台前后
-
- 六、常遇问题和解决
-
- 1、如何选择 Linux 操作系统版本?
- 2、如何规划一台 Linux 主机,步骤是怎样?
- 3、请问当用户反馈网站访问慢,你会如何处理?
-
- 3.1 有哪些方面的因素会导致网站网站访问慢?
- 3.2 针对网站访问慢,怎么去排查?
- 3.3 怎么去解决?
- 4、安装软件出现报错
- 5、Linux系统如何设置开机自动运行脚本?
- 七、安装软件常用离线源(18.04.1)
-
- 1、docker升级到18.09.6
- 2、获取新的nvidia-docker
- 3、指定获取ansible的最新版本源
- 4、获取cuda10.0和驱动
- 5、18.04.1 离线源
- 八、将安装压缩包转成二进制bin安装包(适用于ubuntu)
-
- 1、打包安装包脚本
- 2、将安装压缩包转成二进制安装包
- 九、ubuntu修改时区和时间
-
- 1、常用命令
-
- 2、linux配置多台服务器系统时间一致
-
- 2.1 设置服务器A为时间服务器
- 2.2 B服务器同步A服务器的时间
1、统计
命令 |
命令解释 |
ls -l | grep “^-” | wc -l |
# 统计当前目录下文件的个数(不包括目录) |
ls -lR | grep “^-” | wc -l |
# 统计当前目录下文件的个数(包括子目录) |
2.1 find查找文件
命令 |
命令解释 |
find |
# 实际搜寻硬盘查询文件名称 |
find ./ -name “*.txt” |
# 查询当前文件夹后缀为.txt的文件 |
find / -type f -size +2G |
# 查询服务器上大于2G以上的文件 |
find / -name passwd |
# 查找文件名为passwd的文件 |
find . -perm 0755 |
# 查找当前目录中文件权限的0755的文件 |
find . -size +12k |
# 查找当前目录中大于12KB的文件,注意c表示byte |
2.2 字符串查找
find / -type f -name "*.sh" | xargs grep "1234567890"
find ./ -name "*.*" | xargs grep "hello123456789"
grep -rn "hello123456789" ./
2.3 查看文件文本
命令 |
命令解释 |
tail -n |
#‘tail -n’ 命令选项显示文件最后指定行数的内容。 |
cat file1 |
# 从第一字节开始正向查看 |
tac file1 |
# 从最后一个字节开始反向查看 |
more file1 |
# 正向查看长文件 |
less file1 |
# 反向查看长文件 |
head -2 file1 |
# 查看文件前2行 |
tail -100f test.log |
#实时监控100行日志 |
cat -n test.log |grep “debug” |
# 查询关键字的日志 |
cat file_name.txt | more |
# 一页一页地查看一个大文件的内容 |
2.4 查看目录
ls -lts # 查看当前文件夹详细信息,并按照最新更新排序
ls -al # 显示所有的文件属性
2.5 查看端口号等
命令 |
命令解释 |
备注 |
lsof -i:3306 |
#查看3306端口使用情况 |
lsof能看到pid和用户,可以找到哪个进程占用了这个端口 |
netstat -ntlp |
#查看当前所有tcp端口 |
无 |
netstat -atunlp |grep 80 |
#查看所有80端口使用情况 |
netstat无权限控制,lsof有权限控制,只能看到本用户 |
netstat -an | grep 3306 |
#查看所有3306端口使用情况 |
无 |
netstat -anp | grep 8080 | grep LISTEN |
#显示监听 |
无 |
2.6 查看linux版本等
命令 |
命令解释 |
uname -a |
#查看内核版本 |
cat /etc/issue |
#Ubuntu 18.04.1 LTS \n \l |
cat /proc/version |
# 更详细信息 |
lsb_release -r | awk ‘{print $2}’ |
# 获取linux系统版本 18.04 |
lsb_release -d | awk ‘{print $3}’ |
# 获取linux系统版本 18.04.1 |
ulimit -u |
# 查看系统中的进程上限,属于软限制,是可以改变的 |
ulimit -u 5120 |
# 将软限制改到5120 |
cat /proc/sys/kernel/pid_max |
# 最大进程的pid序号 |
# 总核数 = 物理CPU个数 X 每颗物理CPU的核数
# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
# 查看物理CPU个数
# 查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "cpu cores"| uniq
# 查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l
# 查看CPU信息(型号)
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
2.7 查看服务器资源环境等相关信息
命令 |
命令解释 |
du -h --max-depth=1 /opt |
# 查看文件大小 |
which |
# 查看可执行文件的位置 |
whereis app |
# 查看文件的位置 |
dpkg -s firefox |
# 检查一个软件包是否安装 |
cd /etc/init.d/ |
# 查看服务器存在的服务 |
df –h |
# 查看磁盘情况 |
ps -A |
# 显示所有进程 |
ps -a |
# 显示终端中包括其它用户的所有进程 |
ps –aux |
|
ps -ef | grep pid |
# 指定pid |
top |
# 命令提供了运行中系统的动态实时视图 |
free |
# 命令 (显示系统内存),物理内存、交互区内存(swap)和内核缓冲区内存。 |
env |
# 查看环境变量 |
env $HOME |
# 查看某个环境变量 |
compgen -c |
# 打印出所有支持的命令列表 |
who am i |
# 查找自己所在的终端信息 |
who |
# 查看当前谁在使用该主机 |
history |
# 输出输入过的历史命令 |
ifconfig |
# 查看 ip 地址及接口信息 |
whatis cp |
# 查看一个 linux 命令的概要与用法 |
cal 2017 |
# 显示日历 |
bc |
# 计算器模式 |
man & info |
# 帮助手册 |
locale |
# 显示当前字体 |
locale -a |
# 所有可用字体 |
LANG = en |
# 使用英文字体 |
locate # 配合数据库查看文件位置 其实是“find -name”的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。
3、切换路径
命令 |
命令解释 |
cd - |
# 切换到上次访问路径 |
pwd |
# 打印当前目录 |
cd … |
# 上层目录 |
cd / |
# 根目录 |
cd ~ |
# 跳到自己的 home 目录 |
4、查看进程等
ps -ef | grep uwsgi
ps -aux|grep ef95e87f82b9 查看容器进程
eg: 清理Monitor
ps -ef | grep Monitor
kill -9 ${PID}
5、重启、关机
命令 |
命令解释 |
shutdown -h now &half & poweroff |
# 关机 |
reboot |
# 重启 |
clear |
# 清屏 |
6、新建、删除文件和文件夹
命令 |
命令解释 |
mkdir dir1 dir |
# 创建文件夹 |
ln -s file1 link1 |
# 创建一个指向文件或目录的软链接 |
rm 1.txt |
# 删除一个文件 |
rmdir drr1 |
# 删除一个目录 |
rm -rf dir1 |
# 强制删除文件夹 |
vim xx.txt |
# 编辑好后通过输入:wq保存 |
touch xx.txt |
# 创建一个文件 |
7、修改文件/文件夹权限、所属组、所有者
7.1 改变文件权限
chmod 777 gpu-update-xx.bin
chmod -R 777 dir1
若要 rwx 属性则 4+2+1=7;# 读写执行
若要 rw- 属性则 4+2=6; # 读写
若要 r-x 属性则 4+1=5。 # 读 执行
7.2 改变文件所属组
语法:chgrp [用户组] [文件或目录]
7.3 改变文件所有者
语法:chown [用户] [文件或目录]
chown "$USER":"$USER" /home/"$USER"/.docker -R
8、复制、移动
8.1 本地cp 复制文件/文件夹命令
命令 |
命令解释 |
cp -r dir1 dir2 |
# 复制目录的所有文件到另一个目录 |
cp -a file1 file2 |
# 连同文件的所有特性把文件file1复制成文件file2 |
cp file1 file1 file3 dir |
# 将文件file1,file2,file3复制到目录dir中 |
cpio /home /dst |
# 拷贝/home的目录结构到另一个目录 |
8.2 远程scp复制文件/文件夹命令
scp local_file remote_username@remote_ip:remote_folder
scp local_file remote_username@remote_ip:remote_file
scp -r local_folder remote_username@remote_ip:remote_folder
eg: scp -r test [email protected]:/home/intellif #本地文件夹上传到远程服务器
scp -r [email protected]:/data/test /home/intellif #拉取远程服务器文件夹
8.3 mv 移动文件、目录或更名
mv file1 file2 file3 dir # 把文件file1、file2、file3移动到目录dir中
mv file1 file2 # 把文件file1重命名为file2
9、解压缩
9.1 解压文件
命令 |
命令解释 |
tar -xvf file.tar |
# 解压tar包 |
tar -xzvf file.tar.gz |
# 解压tar.gz |
tar -xjvf file.tar.bz2 |
# 解压tar.bz2 |
tar -xZvf file.tar.Z |
# 解压tar.Z |
unrar e file.rar |
# 解压rar |
unzip file.zip |
# 解压zip |
9.2 压缩
tar -czf test.tar.gz ./* 压缩
10、网络相关
10.1 重启网卡
service network restart #root账户
/etc/init.d/networking restart #root账户
10.2 联网配置
(1) vi /etc/resolv.conf 添加 nameserver 114.114.114.114
(2) 重启网络即可 /etc/init.d/networking restart
11、安装/卸载软件、库包
11.1 apt-get安装软件
apt-get clern
apt-get update
apt-get install -y build-essential
apt-get install lsb-core -y
#软件源地址:/etc/apt/sources.list
11.2 apt-get卸载软件
apt-get --purge remove app-name
eg: 卸载旧版docker
apt-get --purge remove docker-ce
dpkg --list | grep docker #检查有没有卸载干净
11.3 pip安装python库包
命令 |
命令解释 |
pip show pip |
#查看版本是否最新 |
python -m pip install --upgrade pip |
#升级pip |
python -m pip install -U --force-reinstall pip |
#升级pip失败时尝试 |
python -m pip install --upgrade pip |
#升级pip失败时尝试 |
pip3 install numpy -i https://pypi.doubanio.com/simple |
#指定豆瓣源 |
12、其它常见命令
命令 |
命令解释 |
dos2unix pack.sh ntp.sh |
#将dos格式转换成liunx格式 |
-
二、docker和docker-compose相关命令
1、docker常见命令表格
命令名称 |
docker命令 |
登录 |
docker login -uadmin -p123456 192.168.11.135:5002 |
拉取镜像 |
docker pull 192.168.11.135:5002/ic/ifaas-data:1.1 |
上传镜像 |
docker push 192.168.11.135:5002/ic/ifaas-data:1.1 |
查看镜像 |
docker images |
删除镜像 |
docker rmi 192.168.11.135:5002/ic/ifaas-data:1.1 |
镜像生成 |
docker build -t 192.168.11.135:5002/ic/ifaas-data:1.1 . |
镜像保存 |
docker save 192.168.11.135:5002/ic/ifaas-data:1.1 > ifaas-data1.1.tar |
镜像导入 |
docker load -i < ifaas-data1.1.tar |
修改tag |
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG] |
加载镜像 |
docker load -i ***.tar |
容器启动/停止/重启 |
docker start/stop/restart ifaas-data |
容器状态 |
docker ps / docker ps –a |
容器详情 |
docker inspect ifaas-data |
容器进程 |
docker top ifaas-data |
进入容器 |
docker exec -it ifaas-data bash |
复制文件 |
docker cp ifaas-data:/opt/ifaas-data |
创建镜像 |
dockerfile #包含安装运行所需的环境、程序代码等 |
2、通过容器提交镜像以及推送镜像笔记
docker images #查看镜像已存在 docker.io/ubuntu 镜像
docker run -ti --name myubuntu -d docker.io/ubuntu #创建一个名为myubuntu的容器
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] # 从容器创建一个新的镜像。
# -a :提交的镜像作者;
# -c :使用Dockerfile指令来创建镜像;
# -m :提交时的说明文字;
# -p :在commit时,将容器暂停。
docker commit -a "wangshibo" -m "this is test" 651a8541a47d myubuntu:v1 #根据myubuntu容器提交镜像
docker images |grep myubuntu # 发现myubuntu:v1镜像已在本地服务器,对应IMAGE ID 为:6ce4aedd12cd
docker tag 6ce4aedd12cd username/myubuntu:v1 # 需要将ubuntu:v1镜像改名,在名称前加上自己的docker hub的Docker ID,即username
docker push username/myubuntu:v1 #推送到镜像仓库里(需先登录镜像仓库地址 docker login)
3、dockerfile 制作镜像
#常用命令
FROM:指定基础镜像
LABEL:功能是为镜像指定标签
RUN:运行指定的命令
CMD:容器启动时要运行的命令
COPY:
ADD:
docker build -t ${reg}/${image}:${tag} ${basepath} #编写dockerfile配置文件构建image
###################################### dockerfile 实例 ############################################
FROM 192.168.11.135:5002/middleware/arangodb:3.4.5
MAINTAINER wyt
ENV ARANGO_VERSION 3.4.5-1
# 健康检查
HEALTHCHECK --interval=10s --timeout=2s --retries=6 --start-period=60s CMD curl --silent --fail localhost:8529 || exit 1
EXPOSE 8529
RUN mkdir -p /opt/conf
COPY conf /opt/conf
COPY start.sh /opt/
RUN chmod 777 /opt/start.sh && \
chmod -R 777 /opt/conf
CMD ["arangod"]
ENTRYPOINT ["/opt/start.sh"]
4、docker-compose常见命令表格
命令名称 |
docker-compose命令 |
构建应用并启动 |
docker-compose up –d -f xxx.yml |
重构应用并启动 |
docker-compose up --build –d -f xxx.yml # 当前文件夹加的dockerfile |
查看容器运行状态 |
docker-compose ps |
启动全部容器 |
docker-compose start |
重启全部容器 |
docker-compose restart |
重启指定容器 |
docker-compose restart xxx |
启动指定容器 |
docker-compose start xxxx |
停止容器 |
docker-compose stop xxx |
移除所有容器 |
docker-compose rm |
移除指定容器 |
docker-compose rm xxx |
查看日志 |
docker-compose log |
查看某容器100行日志 |
docker-compose logs --tail 100 ifaas-data |
1. 拉取代码库
git clone http://用户名:密码@192.168.90.8/software/ifaas-platform.git
#eg:git clone [email protected]:software/ifaas-update.git
2、更新代码库
# 情况1,无冲突无修改情况:git pull
# 情况2:有冲突有修改情况:
#(1)如果希望保留生产服务器上所做的改动,仅仅并入新配置项, 处理方法如下:
git stash
git pull
git stash pop
#(2)反过来,如果希望用代码库中的文件完全覆盖本地工作版本. 方法如下:
git clean -d -fx 表示:删除 一些 没有 git add 的 文件;
git reset --hard
git pull
3、删除远程分支
git push origin --delete
git branch -D
4、Git以一个远程分支为基础新建一个远程分支
git checkout -b new_branch_name origin/old_remote_branch
eg: git checkout -b v1.5.0-stdemo800-1.4.0 origin/v1.5.0-stdemo800-1.3.0
# 修改代码后,再 提交到远程分支
git add filename
git commit -m "add features"
git push origin new_branch_name
5、提交修改
step1: git add . 或者 git add -A
step2: git commit -m "add features"
step3: git push origin new_branch_name
6、回退命令
git reset --hard HEAD^ # 回退到上个版本
git reset --hard HEAD~3 # 回退到前3次提交之前,以此类推,回退到n次提交之前
git reset --hard commit_id # 退到/进到 指定commit的sha码
git push origin HEAD --force # 强推到远程
![linux常见命令等总结-v1_第1张图片](http://img.e-com-net.com/image/info8/50dfaa592d864a4683ee5e3e498749ab.jpg)
1、Linux 下命令有哪几种常使用的通配符
“?”可替代单个字符。
“*”可替代任意多个字符。
方括号“[charset]”可替代 charset 集中的任何单个字符,如[a-z],[abABC]
1、常用命令
命令 |
命令解释 |
& |
# eg: watch -n 10 sh test.sh & 表示每10s在后台执行一次test.sh脚本 |
nohup |
# 如果让程序始终在后台执行,即使关闭当前的终端也执行(之前的&做不到) |
ctrl + z |
# 将一个正在前台执行的命令放到后台,并且处于暂停状态。 |
jobs -l |
# 可显示所有任务的PID,jobs的状态可以是running, stopped, Terminated。但是如果任务被终止了(kill),shell 从当前的shell环境已知的列表中删除任务的进程标识。 |
fg jobnumber |
# 将后台中的命令调至前台继续运行。如果后台中有多个命令,可以用fg %jobnumber |
bg |
# 将一个在后台暂停的命令,变成在后台继续执行。如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出。 |
screen |
# 管理远程会话 https://www.ibm.com/developerworks/cn/linux/l-cn-screen/ |
2、kill进程
#法子1:通过jobs命令查看job号(假设为num),然后执行kill %num
#法子2:通过ps命令查看job的进程号(PID,假设为pid),然后执行kill pid
eg: ps -aux | grep "test.sh" #a:显示所有程序 u:以用户为主的格式来显示 x:显示所有程序,不以终端机来区分
kill pid
kill-9 pid
Ctrl+c # 前台进程的终止
disown -r # 将所有正在运行的进程移除。
https://www.cnblogs.com/kaituorensheng/p/3980334.html
1、如何选择 Linux 操作系统版本?
一般来讲,桌面用户首选 Ubuntu ;服务器首选 RHEL 或 CentOS ,两者中首选 CentOS 。
根据具体要求:
(1)安全性要求较高,则选择 Debian 或者 FreeBSD;
(2)需要使用数据库高级服务和电子邮件网络应用的用户可以选择 SUSE;
(3)想要新技术新功能可以选择 Feddora ,Feddora 是 RHEL 和 CentOS 的一个测试版和预发布版本。
【重点】根据现有状况,绝大多数互联网公司选择 CentOS 。现在比较常用的是 6 系列,现在市场占有大概一半左右。另外的原因是 CentOS 更侧重服务器领域,并且无版权约束。
CentOS 7 系列,也慢慢使用的会比较多了。
2、如何规划一台 Linux 主机,步骤是怎样?
确定机器是做什么用的,比如是做 WEB 、DB、还是游戏服务器。
总之,不同的用途,机器的配置会有所不同。
确定好之后,就要定系统需要怎么安装,默认安装哪些系统、分区怎么做。
需要优化系统的哪些参数,需要创建哪些用户等等的。
3、请问当用户反馈网站访问慢,你会如何处理?
3.1 有哪些方面的因素会导致网站网站访问慢?
(1)服务器出口带宽不够用
本身服务器购买的出口带宽比较小。一旦并发量大的话,就会造成分给每个用户的出口带宽就小,访问速度自然就会慢。
跨运营商网络导致带宽缩减。例如,公司网站放在电信的网络上,那么客户这边对接是长城宽带或联通,这也可能导致带宽的缩减。
(2)服务器负载过大,导致响应不过来
可以从两个方面入手分析:
分析系统负载,使用 w 命令或者 uptime 命令查看系统负载。如果负载很高,则使用 top 命令查看 CPU ,MEM 等占用情况,要么是 CPU 繁忙,要么是内存不够。
如果这二者都正常,再去使用 sar 命令分析网卡流量,分析是不是遭到了攻击。一旦分析出问题的原因,采取对应的措施解决,如决定要不要杀死一些进程,或者禁止一些访问等。
(3)数据库瓶颈
如果慢查询比较多。那么就要开发人员或 DBA 协助进行 SQL 语句的优化。
如果数据库响应慢,考虑可以加一个数据库缓存,如 Redis 等。然后,也可以搭建 MySQL 主从,一台 MySQL 服务器负责写,其他几台从数据库负责读。
(4)网站开发代码没有优化好
例如 SQL 语句没有优化,导致数据库读写相当耗时。
3.2 针对网站访问慢,怎么去排查?
(1)首先要确定是用户端还是服务端的问题。当接到用户反馈访问慢,那边自己立即访问网站看看,如果自己这边访问快,基本断定是用户端问题,就需要耐心跟客户解释,协助客户解决问题。
不要上来就看服务端的问题。一定要从源头开始,逐步逐步往下。
(2)如果访问也慢,那么可以利用浏览器的调试功能,看看加载那一项数据消耗时间过多,是图片加载慢,还是某些数据加载慢。
(3)针对服务器负载情况。查看服务器硬件(网络、CPU、内存)的消耗情况。 如果是购买的云主机,比如阿里云,可以登录阿里云平台提供各方面的监控,比如 CPU、内存、带宽的使用情况。
(4)如果发现硬件资源消耗都不高,那么就需要通过查日志,比如看看 MySQL慢查询的日志,看看是不是某条 SQL 语句查询慢,导致网站访问慢。
3.3 怎么去解决?
(1)如果是出口带宽问题,那么可以申请加大出口带宽。
(2)如果慢查询比较多,那么就要开发人员或 DBA 协助进行 SQL 语句的优化。
(3)如果数据库响应慢,考虑可以加一个数据库缓存,如 Redis 等等。然后也可以搭建MySQL 主从,一台 MySQL 服务器负责写,其他几台从数据库负责读。
(4)申请购买 CDN 服务,加载用户的访问。
(5)如果访问还比较慢,那就需要从整体架构上进行优化咯。做到专角色专用,多台服务器提供同一个服务。
链接:https://juejin.im/post/6844904127059738637
4、安装软件出现报错
(1)E:Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)
# 出现这个问题的原因可能是有另外一个程序正在运行,导致资源被锁不可用。而导致资源被锁的原因,可能是上次安装时没正常完成,而导致出现此状况。
# 解决方法:输入以下命令
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
# 之后再安装想装的包,即可解决
5、Linux系统如何设置开机自动运行脚本?
# 方法1:修改/etc/rc.d/rc.local文件,加权限:chmod +x /etc/rc.d/rc.local
# 方法2:使用定时器crontab -e
输入:reboot /home/alvin/auto_run_script.sh #保存退出 ctrl+x y
# 方法3:使用systemd服务 创建一个 systemd 启动服务,并把它放置在 /etc/systemd/system/ 目录下。
$ vim gp.service
[Unit]
Description= Greenplum Database Cluster
[Service]
WorkingDirectory=/opt/gpdb
Environment="GP_PID_FILE_PATH=/bigdata/greenplum/master/gpseg-1/postmaster.pid"
ExecStart=/bin/bash -c "source /home/gpadmin/.bash_profile && /opt/gpdb/bin/gpstart -a"
ExecStop=/bin/echo y | gpstop -M fast
User=gpadmin
PIDFile=/bigdata/greenplum/master/gpseg-1/postmaster.pid
# TODO: wait for others server start
ExecStartPre=/bin/sleep 10
# restart when failure
Restart=on-failure
RestartSec=60s
[Install]
WantedBy=multi-user.target
1、docker升级到18.09.6
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) \
stable"
apt-get update
apt-cache madison docker-ce
apt-get install docker-ce=5:18.09.6~3-0~ubuntu-xenial (16ubuntu)
apt-get install docker-ce=5:18.09.6~3-0~ubuntu-bionic(18ubuntu)
2、获取新的nvidia-docker
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/ubuntu18.04/nvidia-docker.list | \
sudo tee /etc/apt/sources.list.d/nvidia-docker.list
apt-get update
apt-get install -d nvidia-docker2
3、指定获取ansible的最新版本源
curl -sL "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x93C4A3FD7BB9C367" | sudo apt-key add
deb https://launchpad.proxy.ustclug.org/ansible/ansible-2.7/ubuntu bionic main
apt-get update
apt-get install -d ansible
4、获取cuda10.0和驱动
卸载cuda10.1: apt autoremove nvidia-container-runtime cuda-10-1
获取cuda源
apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
add-apt-repository "deb https://mirrors.aliyun.com/nvidia-cuda/ubuntu1804/x86_64/ /"
apt-get install -d cuda-10-0
5、18.04.1 离线源
cat > /etc/apt/sources.list <
-
八、将安装压缩包转成二进制bin安装包(适用于ubuntu)
1、打包安装包脚本
#使用方法:package.sh {{ 包名 }}(如expect,多个包一起打包用空格分开)
#!/bin/bash
set -xe
sudo apt clean all
sudo apt update
sudo apt install -y -d $*
[ ! -d /var/debs ] && sudo mkdir /var/debs
sudo rm -rf /var/debs/*
if [ "$(ls -A /var/cache/apt/archives)" ]; then
sudo cp /var/cache/apt/archives/*.deb /var/debs/
else
echo -e "\033[31mMake sure the package $* is or were not been installed \033[0m"
exit 1
fi
sudo chmod 777 -R /var/debs
sudo sudo apt-get install dpkg-dev -y
cd /var
sudo dpkg-scanpackages debs/ /dev/null |gzip > /var/debs/Packages.gz
sudo tar -zcf packages.tgz debs/
2、将安装压缩包转成二进制安装包
使用方法:cat install.sh 压缩包路径 > package.bin
压缩包路径(如使用上述打包脚本,压缩包路径即为/var/package.tgz)
#!/bin/bash
[ -d /var/debs ] && sudo mv /var/debs /var/debs.bak
sed -n -e '1,/^exit 0$/!p' $0 > packages.tgz 2>/dev/null
sudo tar -zxf packages.tgz -C /var
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo chmod 777 /etc/apt/sources.list
sudo echo "deb file:/var debs/" > /etc/apt/sources.list
sudo apt update --allow-insecure-repositories
sudo DEBIAN_FRONTEND=noninteractive apt install -y 组件名称 --allow-unauthenticated
[ -f /etc/apt/sources.list.bak ] && sudo mv /etc/apt/sources.list.bak /etc/apt/sources.list
[ -d /var/debs.bak ] && sudo rm -rf /var/debs && sudo mv /var/debs.bak /var/debs
sudo rm -rf packages.tgz
exit 0
1、常用命令
1.1 修改时区
date -R # 查看时区
sudo tzselect # 修改时区,根据提示操作
sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime # 复制文件到/etc目录下
sudo ntpdate time.windows.com # 更新时间
1.2 修改时间
udo date -s MM/DD/YY # 修改日期
sudo date -s hh:mm:ss # 修改时间
sudo hwclock --systohc # 在修改时间以后,修改硬件CMOS的时间,非常重要,如果没有这一步的话,后面时间还是不准
2、linux配置多台服务器系统时间一致
2.1 设置服务器A为时间服务器
sudo apt-get install --allow-unauthenticated -y ntp #安装ntp.bin
vi /etc/ntp.conf
#最后一行加入下面一行,保存退出
server 127.127.1.0
#重启时间服务器
service ntpd restart
2.2 B服务器同步A服务器的时间
[root@bak-thinkee ~]# service ntpd stop
Shutting down ntpd: [ OK ]
#同步A服务器的时间
[root@bak-thinkee ~]# ntpdate
24 Nov 17:19:01 ntpdate[17960]: step time server offset 25372.353604 sec
#查看B机器系统时间
[root@bak-thinkee ~]# date
Thu Nov 24 17:19:06 CST 2016
#查看B机器BIOS硬件时钟时间
[root@bak-thinkee ~]# clock --show
Thu 24 Nov 2016 10:16:38 AM CST -1.001796 seconds
#用下面命令也可以查看B机器BIOS硬件时钟时间
[root@bak-thinkee ~]# hwclock --show
Thu 24 Nov 2016 10:16:47 AM CST -1.001800 seconds
#将系统时间刷入到BIOS时钟里面去
[root@bak-thinkee ~]# hwclock --systohc
#重新查看下硬件时钟时间
[root@bak-thinkee ~]# hwclock --show
Thu 24 Nov 2016 05:20:19 PM CST -1.001660 seconds
[root@bak-thinkee ~]#