1. 重定向:>> 前后的命令权限是重新处理
sudo ./nginx-disp-proxy-rlog.sh >> /home/a/share/nginx/logs/rlog.log 2>&1
-bash: /home/a/share/nginx/logs/rlog.log: Permission denied
[zengtai.csm@proxy1.ecpm.cm3 ~]$ ll /home/a/share/nginx/logs/rlog.log
-rw-r--r-- 1 root root 0 Nov 1 19:15 /home/a/share/nginx/logs/rlog.log
我直接执行这个命令时会提示没有权限操作log文件,因为sudo 只是对 >> 之前的命令有效; 在 >> 的命令
又会默认 是$USER的权限; 而rlog是root 用户的,所以没有权限操作:
sudo sh -c " ./nginx-disp-proxy-rlog.sh >> /home/a/share/nginx/logs/rlog.log 2>&1"
下面的这个命令 sh -c "..................." 把 -c 后面的 所有命令都当作一个命令来处理,所以可以执行;
(2). 如果这个命令放在cron任务里面:
0 0 * * * root cd /home/a/share/nginx/sbin/; ./nginx-proxy-rlog.sh >> /home/a/share/nginx/logs/rlog.log 2>&1
因为用户指定是root;所以后面的命令都是用root用户来操作;所以是没有任何问题
3. cat ..txt|grep AAA --color