小编Ran*_*Rag的帖子

如何从 cron 中将输出重定向到文件?

我有一个备份脚本,我需要在一天的特定时间运行它,所以我正在使用cron这个任务,并且从 cron 中我也试图将备份脚本的输出重定向到logfile.

crontab -e

*/1 * * * * /home/ranveer/backup.sh &>> /home/ranveer/backup.log
Run Code Online (Sandbox Code Playgroud)

在上面的 cron 条目中,我将两者都重定向stderr and stdout到日志文件。

上面的 cron 作业执行得很好syslog ,它执行backup.sh文件中提到的任务,但它没有向日志文件写入任何内容。

/var/log/syslog

Oct 19 20:26:01 ranveer CRON[15214]: (ranveer) CMD (/home/ranveer/backup.sh &>> /home/ranveer/backup.log)
Run Code Online (Sandbox Code Playgroud)

当我从 cli 运行脚本时,它会按要求工作并将输出写入日志文件

ranveer@ranveer:~$ ./backup.sh &>> backup.log 
ranveer@ranveer:~$ cat backup.log
Fri Oct 19 20:28:01 IST 2012
successfully copied testdir
test.txt successfully copied
-------------------------------------------------------------------------------------
ranveer@ranveer:~$ 
Run Code Online (Sandbox Code Playgroud)

那么,为什么文件的输出没有从 cron 中重定向到文件。

bash cron io-redirection

150
推荐指数
2
解决办法
31万
查看次数

Bash:如何从命令的输出中一次读取一行?

我正在尝试使用 .bash 文件读取 bash 中命令的输出while loop

while read -r line
do
    echo "$line"
done <<< $(find . -type f)
Run Code Online (Sandbox Code Playgroud)

我得到的输出

ranveer@ranveer:~/tmp$ bash test.sh
./test.py ./test1.py ./out1 ./test.sh ./out ./out2 ./hello
ranveer@ranveer:~/tmp$ 
Run Code Online (Sandbox Code Playgroud)

在这之后我试过了

$(find . -type f) | 
while read -r line
do
    echo "$line"
done 
Run Code Online (Sandbox Code Playgroud)

但它产生了一个错误test.sh: line 5: ./test.py: Permission denied

那么,我如何逐行阅读它,因为我认为目前它正在一次吞食整行。

所需输出:

./test.py
./test1.py
./out1
./test.sh
./out
./out2
./hello
Run Code Online (Sandbox Code Playgroud)

shell bash pipe find

63
推荐指数
3
解决办法
15万
查看次数

Ubuntu12.04:如何在启动时禁用守护进程

我通常使用service start/stopinitctl start/stop来启动或停止守护进程,但现在我正在寻找的是禁用守护进程在启动示例中启动mysqld

目前我正在做的是重命名/etc/init/mysql.conf/etc/init/mysql.conf.bak但在阅读了一些关于systemd我开始知道它为enable & disable上述任务提供选项后。

那么,ubuntu 12.04 中是否有类似的东西upstart

ubuntu upstart daemon

23
推荐指数
4
解决办法
7万
查看次数

使用 xargs 时没有此类文件或目录错误

我有一些带有.mkv扩展名的文件,我想使用du -h. 一些文件前面有whitespace字符。

ranveer@ranveer:~$ ls *.mkv
Arrow.S01E02.720p.HDTV.X264-DIMENSION_(1)  [SHYAMPAREEK.IN].mkv
mymediafirefreefreak.com_The.Mentalist.S05E04.480p.HDTV.X264-mRS.mkv
SHYAMPAREEK.IN-The.Vampire.Diaries.S04E02.720p.HDTV.X264-DIMENSION_(1).mkv
Supernatural.S08E03.720p.HDTV.X264-DIMENSION_(1)SHYAMPAREEK.IN].mkv
  [WWW.SHYAMPAREEK.IN].Arrow S01E01 480p HDTV.mkv
 [WWW.SHYAMPAREEK.IN].Castle.2009.S05E03.480p.HDTV.x264-mSD.mkv
ranveer@ranveer:~$ 
Run Code Online (Sandbox Code Playgroud)

现在,我使用xargs应用于du -h每个文件,但对于前面有whitespace字符的文件,我收到No such file or directory错误。

ranveer@ranveer:~$ ls *.mkv | xargs -I f du -h "f" | awk '{print $1}'
du: cannot access `[WWW.SHYAMPAREEK.IN].Arrow S01E01 480p HDTV.mkv': No such file or directory
du: cannot access `[WWW.SHYAMPAREEK.IN].Castle.2009.S05E03.480p.HDTV.x264-mSD.mkv': No such file or directory
186M
151M
185M
186M
ranveer@ranveer:~$ 
Run Code Online (Sandbox Code Playgroud)

但是当我du -h …

ls bash xargs

5
推荐指数
2
解决办法
1万
查看次数

标签 统计

bash ×3

cron ×1

daemon ×1

find ×1

io-redirection ×1

ls ×1

pipe ×1

shell ×1

ubuntu ×1

upstart ×1

xargs ×1