linux 通过命令行执行脚本生成的文件所有者为root的解决办法

通过命令行执行脚本,生成和输出的文件所有者都是root,这就为webserver的二次处理增加了障碍。

(1)通过 su www可以解决这一问题

然而通情况下为了安全www用户的shell指定的/sbin/nologin,这就意味这无法通过su来切换。

(2)通过修改profile文件的umask来指定权限,等价于chmod

这一方法不仅麻烦,还不安全

(3)通过CURL激活

这也是一个办法,需要在代码中加入:

 代码如下 复制代码

<?php ignore_user_abort(true); ?>

(4)通过crontab -u www -e

这一方法比较靠谱,附防止重复执行脚本

 代码如下 复制代码

<?php
if(intval(shell_exec("ps -ef|grep ".basename(__FILE__)." |wc -l")) >3)
exit('重复进程');//防止重复运行
?>

时间: 2025-01-02 06:15:58

linux 通过命令行执行脚本生成的文件所有者为root的解决办法的相关文章

命令行调用w32dsm生成反汇编文件

问题描述 命令行调用w32dsm生成反汇编文件 求问,如何在命令行中调用w32dsm.exe,使其对一个文件反汇编并保存为alf文件? 解决方案 据我所知,w32dasm没有提供命令行的选项.如果你非要在命令行调用,需要写一个程序,它本身在命令行可以执行,它启动这个程序,模拟键盘鼠标的操作,模仿一个用户使用它,产生你要的反编译文件后关闭它. 解决方案二: http://www.pediy.com/kssd/pediy05/pediy50321.htm 解决方案三: 谢谢前面两位的回答,w32ds

PHP调用Linux的命令行执行文件压缩命令_php技巧

前几天工作中,需要将3个txt文件,打包成*.zip down到本地-- 一开始,我和普通青年一样,想到用PHP内置的 ZipArchive,代码看起来应该是这样的: 复制代码 代码如下: /*拆分成3个txt文件 分别是wow_1.txt wow_2.txt 和 wow_3.txt*/ $zip=new ZipArchive(); $zipfile='./Exl_file/wow.zip'; if($zip->open($zipfile,ZIPARCHIVE::CREATE)===TRUE){

Linux Shell远程执行命令(命令行与脚本方式)

shell远程执行: 经常需要远程到其他节点上执行一些shell命令,如果分别ssh到每台主机上再去执行很麻烦,因此能有个集中管理的方式就好了.一下介绍两种shell命令远程执行的方法. 前提条件: 配置ssh免密码登陆 对于简单的命令: 如果是简单执行几个命令,则: ssh user@remoteNode "cd /home ; ls" 基本能完成常用的对于远程节点的管理了,几个注意的点: 双引号,必须有.如果不加双引号,第二个ls命令在本地执行 分号,两个命令之间用分号隔开 对于脚

Zabbix监控之Linux命令行/Shell脚本解析json

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://dgd2010.blog.51cto.com/1539422/1684266 本文主要写了在Linux下如何用Shell脚本解析json数据,以便于在Zabbix中添加适合于业务应用的监控项. 为什么要使用json? json作为一种文本化的数据格式(文本化协议),符合UNIX编程的哲学,既符合透明性(透明性:设计可见,便于审查和调试)又符合文本性(文本性:数据应该保存为文本文件

基于命令行执行带参数的php脚本并取得参数的方法_php技巧

本文分析了基于命令行执行带参数的php脚本并取得参数的方法.分享给大家供大家参考,具体如下: 一.为什么我们要在命令行下运行php脚本呢? 个人理解,主要有二个原因: 1. 利用crontab去跑php,可以给服务器减压,当然在这里有一个条件,就是实时性要求不高.比如:sns中的好友动态,这个实时要求不高,但是数据量比较大,这个时候定时跑的话,会给web服务器,数据库服务器分担不小的压力. 2. 就是我们要定时去完成某一事情,比如:我要删除一个月前,用户留言,这个时候,写的php脚本在cront

paip: paip.命令行执行js

paip.命令行执行js 作者Attilax ,  EMAIL:1466519819@qq.com,112237553@qq.com 使用JS来做项目,需要解决两个问题...GUI界面可以使用HTML技术来解决..命令行程序则需要使用WSH技术了.. 1. 执行 ------------- Cscript //nologo //x C:\Users\attilax\Desktop\x.wsf   CScript //Job:mainx  C:\Users\attilax\Desktop\x.ws

Linux的命令行打字不显示咋办?

现象 我们在使用某些奇怪的程序时,会发现,你敲键盘命令行不显示任何东西.比如输入密码.当然,输密码肯定是不能显示出来了. 但是有的时候,因为程序什么的问题,敲命令行也不显示东西.只有回车的时候,看到命令执行的结果.这是怎么回事,怎么办? 原因: 因为,stty关闭了输入回写.我们可能想当然的认为,敲了键盘,就应该有字出现在屏幕上.只是这个也是因为程序提供了这个功能.如果程序不写这个功能,我们可能就不会这样认为. 各个把键盘键入的字符输出来的就是stty的输入回写功能,包括退格等字符处理,都是st

kettle用命令行执行ktr和kjb

Spoon 是一个图形用户界面,它允许你运行转换或者任务,其中转换是用Pan 工具来运行,任务是用Kitchen 来运行.Pan 是一个数据转换引擎,它可以执行很多功能,例如:从不同的数据源读取.操作和写入数据.Kitchen 是一个可以运行利用XML 或数据资源库描述 的任务.通常任务是在规定的时间间隔内用批处理的模式自动运 一.执行转换transformation(ktr) cd d:\etl\bin pan /file d:\etltest\etltestrans.ktr 二.执行任务jo

VS2010-使用“预先生成事件命令行”和“后期生成事件命令行”功能

原文:VS2010-使用"预先生成事件命令行"和"后期生成事件命令行"功能 xcopy /r /y $(TargetPath) $(ProjectDir)..\Bin\ xcopy /r /y $(TargetDir)$(TargetName).pdb $(ProjectDir)..\Bin\ xcopy /r /y $(TargetPath) $(ProjectDir)..\Release\ xcopy /r /y $(TargetDir)$(TargetName