后台运行
Screen
用于创建和管理多个终端会话
- 创建:
screen -S <session_name>- 不指定名字启动匿名会话
- 查看:
screen -ls- 列出当前系统上所有正在运行的screen会话及其状态(如是否已连接)。
- 重新连接:
screen -r <session_name_or_pid>- 如果只有一个会话,不需要指定会话id
- 分离:screen -d <session_name>
- 在会话外部断开指定的screen会话,但不会杀死会话中的任务。
- 如果当前已经窗口依旧处于连接状态,会无法重新进入,通过这个在外部进行断开
- 分离:按下
Ctrl+a,然后松开,再按下d- 这将分离当前的screen会话,使其继续在后台运行,同时你可以断开与该会话的连接。
- 关闭:screen -X -S <session_name> quit
- 强制结束并退出指定的screen会话。
- 切换screen会话中的窗口
- 按下
Ctrl+a,然后松开,再按下n:切换到下一个窗口。 - 按下
Ctrl+a,然后松开,再按下p:切换到上一个窗口。 - 按下
Ctrl+a,然后松开,再按下0-9之间的数字:直接切换到对应编号的窗口(如果有的话)。
- 按下
定时任务
cron
- 添加定时任务
- 其中每种时间可以通过
a-b指定连续的一段时间内执行,如 1 号 5 号都执行 - 如果是不连续的多个时间,可以通过逗号分隔多个时间,如
1,3,5 - 每个位置为 * 表示的是每个对应的时间都要执行,比如第一个为 * 表示每分钟执行
- 每个位置为 */n 时表示每 n 个时间间隔执行一次,如第一个位置为 * /n 表示每 n 分钟执行一次
- 注意,一般星期和月日的执行不会同时,否则会出现冲突,这个冲突是不被定义的
- 其中每种时间可以通过
bash
crontab -e #编辑cron任务模式
i #默认文字编辑器为vim,按i字母键即可添加cron任务
30 3 * * * /usr/local/etc/rc.d/lighttpd restart #将命令代码放入,此命令意义为每天的03:30 重启apache
# 任务前面的五个位置分别对应 分、时、一个月中的第几天(1 - 31)、月份(1 - 12) 、星期中星期几 (0 - 6) (星期天 为0),
ESC #按ESC键退出编辑模式
:wq #键入:wq保存
systemctl restart cron #重启crontab服务- 查看当前用户的 crontab 文件:crontab -l
- 编辑当前用户的 crontab 文件:crontab -e
- 删除当前用户的 crontab 文件:crontab -r
- 列出某个用户的 crontab 文件(需要有相应的权限):crontab -u username -l
- 编辑某个用户的 crontab 文件(需要有相应的权限):crontab -u username -e
watch
- watch 可以帮助实现定时输出的命令结果,比如 netstat 没有间隔输出结果的功能。
watch [-options] <command>- 切换终端:Ctrl+x 退出watch:Ctrl+g
bash
-n <num> watch 默认每2秒运行一下程序,可以用 -n 来指定间隔的时间
-d watch 会高亮显示变化的区域