Linux 服务器维护基本操作知识汇总
本文目录
介绍
平时我们使用 linux 服务器的是,需要掌握一些基本知识。
标准输入和输出
- 0 是一个文件描述符,表示标准输入(stdin)
- 1 是一个文件描述符,表示标准输出(stdout)
- 2 是一个文件描述符,表示标准错误(stderr)
例子,把正确的输出给a.txt
ls -a >a.txt
或
ls -a 1>a.txt
默认 >
就是表示1>
>
表示重定向到什么地方
例子,把正确的输出给a.txt,把错误的输出给b.txt
ls -a 1>a.txt 2>b.txt
例子,把错误的输出和正确的输出都给a.txt
ls -a >a.txt 2>&1
或
ls -a 1>a.txt 2>a.txt
命令 > 文件 2 >&1 以捜盖的方式,把正确输出和错误输出都保存到同一个文件中
命令 >> 文件 2 >&1 以追加的方式,把正确输出和错误输出都保存到同一个文件中
命令&>文件 以覆盖的方式,把正确输出和错误输出都保存到同一个文件中
命令&>>文件 以追加的方式,把正确输出和错误输出都保存到同一个文件中
命令>>文件1 2>>文件2 把正确的输出追加到文件1中,把错误的输出追加到文件2中
总结
1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"
2 表示stderr标准错误
& 表示等同于的意思,2>&1,表示2的输出重定向等同于1
git 仓库忽略文件权限模式监听
# 全局
git config --global core.filemode false
# 本仓库
git config core.filemode false
ssh 端口不是22进行传送
仓库拉取
git clone ssh://git@127.0.0.1:端口/yy.git
ssh 登录
ssh -p 端口 root@IP
使用ssh 私钥登录
ssh -i 私钥 root@ip
nohup 是 no hang up 的缩写,就是不挂断的意思
nohup和&的区别
- & : 指在后台运行,&是指在后台运行,但当用户推出 (挂起) 的时候,命令自动也跟着退出
- nohup : 不挂断的运行,注意并没有后台运行的功能,,就是指,用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响他的运行,注意了nohup没有后台运行的意思;&才是后台运行
nohup COMMAND &
,这样就能使命令永久的在后台执行
例子
sh test.sh &
将sh test.sh任务放到后台 ,关闭xshell,对应的任务也跟着停止。nohup sh test.sh
将sh test.sh任务放到后台,关闭标准输入,终端不再能够接收任何输入(标准输入),重定向标准输出和标准错误到当前目录下的nohup.out文件,即使关闭xshell退出当前session依然继续运行。nohup sh test.sh &
将sh test.sh任务放到后台,但是依然可以使用标准输入,终端能够接收任何输入,重定向标准输出和标准错误到当前目录下的nohup.out文件,即使关闭xshell退出当前session依然继续运行。
输出指定文本
nohup command > kq.file 2>&1 &
表示后台运行,输出文本到kq.file
,错误和正确都到这里
监听我们的脚本是否停止
找出某个命令的进程 号
grep 'php artisan queue:work' | grep -v grep | awk '{print $2}'
awk '{print $2}' 一行一行的读取指定的文件, 以空格作为分隔符,打印第二个字段。
监听我们的队列是否掉线
#!/bin/bash
while true;do
server=`ps -aux | grep '/www/wwwroot/demolv/artisan queue:work' | grep -v grep | awk '{print $2}'`
now=`date "+%Y-%m-%d %H:%M:%S"`
if [ ! "$server" ]; then
#如果不存在就重新启动
nohup /usr/bin/php /www/wwwroot/demolv/artisan queue:work >/root/queue.log 2>&1 &
echo "${now} : 队列驱动成功" >> /root/queue_start.log
#启动后沉睡10s
sleep 10
else
echo "${now} : 队列已经在运行 PID=${server}" >> /root/queue_start.log
fi
#每次循环沉睡10s
sleep 5
done
循环监听
定时监听
#!/bin/sh
now=`date "+%Y-%m-%d %H:%M:%S"`
server=`ps -aux | grep '/www/wwwroot/demolv/artisan queue:work' | grep -v grep | awk '{print $2}' `
if [ ! "$server" ]; then
nohup /usr/bin/php /www/wwwroot/demolv/artisan queue:work >/root/queue.log 2>&1 &
echo "${now}:开始运行"
else
echo "${now}:已运行"
fi
开机驱动脚本
vim /etc/rc.local
chmod +x /etc/rc.d/rc.local
crontab
crontab -e
当“crontab -e”编辑完成之后,一旦保存退出,那么这个定时任务实际就会写入 /var/spool/cron/ 目录中,每个用户的定时任务用自己的用户名进行区分。而且 crontab 命令只要保存就会生效,只要 crond 服务是启动的
查看
crontab -l
删除
crontab -l
这里都是你当前用户的操作
项目 | 含义 | 范围 |
---|---|---|
第一个 | 一小时当中的第几分钟(minute) | 0~59 |
第二个 | 一天当中的第几小时(hour) | 0~23 |
第三个 | 一个月当中的第几天(day) | 1~31 |
第四个 | 一年当中的第几个月(month) | 1~12 |
第五个 | 一周当中的星期几(week) | 0~7(0和7都代表星期日) |
特殊符号 | 含义 |
---|---|
`*`(星号) | 代表任何时间。比如第一个 "*" 就代表一小时种每分钟都执行一次的意思。 |
,(逗号) | 代表不连续的时间。比如 "0 8,12,16***命令" 就代表在每天的 8 点 0 分、12 点 0 分、16 点 0 分都执行一次命令。 |
-(中杠) | 代表连续的时间范围。比如 "0 5 ** 1- 6 命令",代表在周一到周六的凌晨 5 点 0 分执行命令。 |
/(正斜线) | 代表每隔多久执行一次。比如 "*/10****命令",代表每隔 10 分钟就执行一次命令。 |
sh脚本秒级别执行
比如我要让laravel 每秒执行调度,其实就是执行60个进程。
#!/bin/bash
step=1 #间隔的秒数
for (( i = 0; i < 60; i=(i+step) )); do
/usr/local/php/bin/php /home/www/blog/artisan schedule:run
sleep $step
done
exit 0
如果你要10秒,
#!/bin/bash
step=10 #间隔的秒数
for (( i = 0; i < 60; i=(i+step) )); do
/usr/local/php/bin/php /home/www/blog/artisan schedule:run
sleep $step
done
exit 0
写入定时里面
* * * * * /www/dingshi/crontab.sh
Linux下批量Kill多个进程
比如杀死php所有进程
ps -ef|grep php|grep -v grep|cut -c 9-15|xargs kill -9
- "ps - ef"是linux 里查看所有进程的命令。这时检索出的进程将作为下一条命令"grep mcfcm_st"的输入。
- "grep mcfcm_st"的输出结果是,所有含有关键字"mcfcm_st"的进程,这是Oracle数据库中远程连接进程的共同特点。
- "grep -v grep"是在列出的进程中去除含有关键字"grep"的进程。
- "cut -c 9-15"是截取输入行的第9个字符到第15个字符,而这正好是进程号PID。
- "xargs kill -9"中的xargs命令是用来把前面命令的输出结果(PID)作为"kill -9"命令的参数,并执行该令
git 发行一个版本
查看 所有 tag 标签
git tag
查看某个
git tag hbkt
某个提交打上tag
git tag -a hbkt -m '描述' c809ddbf83939a89659e51dc2a5fe183af384233 //在某个commit 上打tag
推送到线上
git push origin hbkt
推送所有
git push origin --tags
删除 tag
git tag -d hbkt
删除线上
git push origin :refs/tags/hbkt
版权提示
1.除了标识原创之外,其他可能来源于网友的分享,仅供学习使用2.如您发现侵犯了您的权利,请联系我们删除
3.转载必须带本文链接,否则你将侵权
4.关于会员或其发布的相关内容均由会员自行提供,会员依法应对其提供的任何信息承担全部责任,本站不对此承担任何法律责任
评论区 (0)
没有记录
请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!