01
—
系统任务管理
跟系统任务相关的几个命令:fg、bg、jobs、&、ctrl+z
- & 最经常被用到:这个用在一个命令的最后,可以把这个命令放到后台执行
- ctrl + z:可以将一个正在前台执行的命令放到后台,并且暂停
- jobs:查看当前有多少在后台运行的命令
- fg:将后台中的命令调至前台继续运行
oracle@yaoyuan ~$ sleep 10^Z[1]+ Stopped sleep 10oracle@yaoyuan ~$ sleep 9 &[2] 25127oracle@yaoyuan ~$ jobs[1]+ Stopped sleep 10[2]- Running sleep 9 &oracle@yaoyuan ~$ ps PID TTY TIME CMD24894 pts/0 00:00:00 bash25112 pts/0 00:00:00 sleep25167 pts/0 00:00:00 ps[2]- Done sleep 9oracle@yaoyuan ~$ jobs[1]+ Stopped sleep 10oracle@yaoyuan ~$ fgsleep 10
sleep 9在后台执行,不是暂停,而sleep 10暂停了。
02
—
ps
ps 命令用于显示当前系统中由该用户运行的进程列表
选项 | 说明 |
-ef | 查看所有进程及其 PID(进程号)、系统时间、命令的详细目录、执行者等。 |
-aux | 除可显示 -ef 所有内容外,还可显示 CPU 及内存占用率、进程状态。 |
-w | 以加宽方式显示,这样可以显示较多的信息。 |
03
—
pidof
根据进程名查询进程号
oracle@yaoyuan ~$ pidof mysqld1907oracle@yaoyuan ~$ ps -ef|grep mysqldmysql 1907 1 0 Jul29 ? 00:01:57 /usr/sbin/mysqld
04
—
kill
而 kill 命令用于输出特定的信号给指定进程号(PID)的进程并根据该信号完成指定的行为,其中可能的信号有进程挂起、进程等待、进程终止等
oracle@yaoyuan ~$ kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR111) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+338) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+843) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+1348) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-1253) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-758) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-263) SIGRTMAX-1 64) SIGRTMAX oracle@yaoyuan ~$ sleep 100 &[1] 25928oracle@yaoyuan ~$ ps PID TTY TIME CMD24894 pts/0 00:00:00 bash25928 pts/0 00:00:00 sleep25941 pts/0 00:00:00 psoracle@yaoyuan ~$ kill 25928oracle@yaoyuan ~$ ps PID TTY TIME CMD24894 pts/0 00:00:00 bash25948 pts/0 00:00:00 ps
信号默认为15,使用-9可以强制杀死。
05
—
nohup
nohup 英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。
nohup 命令,在默认情况下(非重定向时),会输出一个名叫 nohup.out 的文件到当前目录下,如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。
以下命令在后台执行 root 目录下的 dbaace.sh 脚本:
oracle@yaoyuan ~$ cat > yaoyuan.shlsoracle@yaoyuan ~$ chmod a+x yaoyuan.sh oracle@yaoyuan ~$ nohup yaoyuan.shnohup: ignoring input and appending output to ‘nohup.out’nohup: failed to run command ‘yaoyuan.sh’: No such file or directoryoracle@yaoyuan ~$ nohup ./yaoyuan.shnohup: ignoring input and appending output to ‘nohup.out’oracle@yaoyuan ~$ cat nohup.out aaa.sqlawrdiff_1_253_1_270.html...
06
—
at
计划任务服务程序 把周期性、规律性的工作交给系统自动完成。计划任务分为一次性计划任务与长期性计划任务。一次性计划任务只执行一次,一般用于满足临时的工作需求。我们可以用at命令实现这种功能,只需要写成“at 时间”的形式就可以。
oracle@yaoyuan ~$ dateSun Jul 31 15:16:55 CST 2022oracle@yaoyuan ~$ at 15:18at> touch file_aat> <EOT>job 1 at Sun Jul 31 15:18:00 2022oracle@yaoyuan ~$ dateSun Jul 31 15:18:01 CST 2022oracle@yaoyuan ~$ ll file_a-rw-r--r--. 1 oracle oinstall 0 Jul 31 15:18 file_a
<EOT>是输入Ctrl+d结束。
07
—
crontab
我们希望 Linux 系统能够周期性地、有规律地执行某些具体的任务,那么Linux 系统中默认启用的 crond 服务简直再适合不过了 创建、编辑计划任务的命令为“crontab -e”,查看当前计划任务的命令为“crontab -l”,删除某条计划任务的命令为“crontab -r”。另外,如果您是以管理员的身份登录的系统,还可以在crontab 命令中加上-u 参数来编辑他人的计划任务。
格式如下:
* * * * * command
分 时 日 月 周 命令 第1列表示分钟1~59 每分钟用*或者 */1表示 第2列表示小时1~23(0表示0点) 第3列表示日期1~31 第4列表示月份1~12 第5列标识号星期0~6(0表示星期天) 第6列要运行的命令
例子:
每晚的21:30重启apache:
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
每月1、10、22日的4点45分执行:
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
每周日早上2点执行数据库备份脚本:
0 2 * * 7 backup_database.sh
常用于数据库备份
开机自动执行
# crontab -e //进入编辑,输入如下行 @reboot touch /home/oracle/hello.res
检查使用crontab -l