小编Duc*_*uck的帖子

强制复制损坏的主目录

我的磁盘中有一个主目录,里面有很多损坏的文件。我正在尝试尽可能保存大多数文件。我正在尝试使用以下方法在外部驱动器上创建我的主目录的备份

tar -cvf backup /home/myHome
Run Code Online (Sandbox Code Playgroud)

并且也尝试过

rsync -vfh /home/myHome /media/backup
Run Code Online (Sandbox Code Playgroud)

当发现损坏的文件时,这两种方法都会停止。有没有办法强制一个或另一个继续复制并忽略坏文件,复制所有可能复制的内容并在未复制的文件末尾显示日志?

谢谢。

tar backup rsync home

7
推荐指数
1
解决办法
4089
查看次数

iptables 规则未在 CentOS 6.x 上重新加载

iptables在 CentOS 6.x 机器上添加了一个 ipset,当机器重新启动时,此规则丢失。

我发现这个答案显示了如何让 Ubuntu 系统iptables在重新启动后重新加载规则,但该目录在 CentOS 上不存在。

如何让这个 CentOS 机器在重启后加载防火墙规则?

注意:是的,我正在使用规则保存规则iptables save并且正在保存文件。

这是里面的内容/etc/sysconfig/iptables

# Generated by iptables-save v1.4.7 on Mon Apr  8 09:52:59 2013
*filter
:INPUT ACCEPT [2713:308071]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1649:1766437]
-A INPUT -p tcp -m multiport --dports 25,587,465,110,143,993,995 -m state --state INVALID,NEW,RELATED,ESTABLISHED -m set
 --match-set blocking src -j DROP 
COMMIT
# Completed on Mon Apr  8 09:52:59 2013
Run Code Online (Sandbox Code Playgroud)

命令显示-A INPUT,但当我创建它时,我使用了 …

firewall iptables centos reboot ipset

7
推荐指数
1
解决办法
3万
查看次数

来自终端的大量图像平铺

假设我有一个包含 30 个图像的目录。是否可以将这些图像用作图块来创建大图像?

假设所有图像的大小都相同,例如 120x80,我想创建一个大图像,其中包含 6 行 x 5 列的这些图像,它们之间没有空格?

是否可以使用例如 SIPS 或其他应用程序从终端执行此操作?

terminal images

7
推荐指数
1
解决办法
1941
查看次数

有没有办法发现为什么我的服务器负载很高

刚才由于超高负载(75!)导致系统瘫痪,我被迫远程重启我的 CentOS 6.3 系统。这是一个为 wordpress 博客 (mySQL + PHP) 提供服务的网络/邮件服务器。

有没有我可以分析的日志并尝试发现是什么原因造成的?

这是我现在从系统收到的关于昨天事件的电子邮件:

This is an automated message notifying you that the 5 minute load average on your system is 75.91.
This has exceeded the 10 threshold.

One Minute      - 83.24
Five Minutes    - 75.91
Fifteen Minutes - 39.35

top - 22:25:30 up 122 days,  7:28,  0 users,  load average: 99.14, 80.70, 42.31
Tasks: 298 total,   1 running, 297 sleeping,   0 stopped,   0 zombie
Cpu(s):  1.2%us,  0.5%sy,  0.0%ni, 98.1%id,  0.3%wa,  0.0%hi, …
Run Code Online (Sandbox Code Playgroud)

logs load freeze

6
推荐指数
1
解决办法
4320
查看次数

从行中删除空格和制表符而不会弄乱行尾

我正在尝试删除文件上的所有空格,而不会弄乱行尾。这是从 bash 脚本内部运行的。

我在这里尝试了所有解决方案:https : //stackoverflow.com/questions/9953448/how-to-remove-all-white-spaces-from-a-given-text-file

它们从命令行工作,但是当我从 bash 脚本尝试它们时,最终文件一团糟,完全被破坏了。

文件使用 UNIX 文件结尾。

有什么线索吗?

command-line files

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

?4 被这个 Bash 脚本添加到文件名中,为什么?

我有这个脚本从很多mp4视频中提取一帧并将它们存储为png

for i in *.mp4; do
    [ -f "$i" ] || break
    number=$(echo "$i" | grep -o -E '[0-9]+')
    name=frame"$number".png
    ffmpeg -i "$i" -ss 00:01:00.000 -vframes 1 "$name"
done
Run Code Online (Sandbox Code Playgroud)

视频被命名为喜欢video1.mp4video2.mp4等等。因为环路采用视频失灵,我从视频中提取数生成输出文件名。

这很好用,但文件的文件名png是这样的:

frame1?4.png, frame3?4.png, frame3?4.png...

为什么?4


啊,我现在看到 4 来自 mp4 上的 4。我如何只得到第一个数字?

bash

6
推荐指数
1
解决办法
722
查看次数

在 CSV 文件内将 1 到 9 之间的个位数转换为两位数

我有一个包含数千行这样的 CSV 文件

1664;4;5;35;37;43;5;6
1663;21;23;32;40;49;8;11
1662;16;17;34;35;44;5;10
1661;2;9;23;32;40;6;7
1660;23;25;30;44;47;9;12
1659;3;5;9;32;43;6;10
1658;4;6;10;13;34;3;5
1657;8;9;33;35;40;3;6
1656;15;20;31;44;48;1;3
1655;25;27;35;40;45;7;11
1654;7;32;33;34;38;6;9
1653;5;7;11;27;37;6;12
1652;7;31;33;35;36;7;10
1651;4;12;34;35;45;1;9
1650;5;8;29;35;48;5;6
1649;2;11;28;42;48;4;9
1648;2;11;12;19;38;4;8
Run Code Online (Sandbox Code Playgroud)

您可以看到 1 到 9 之间的数字都是个位数。

我如何使用sed或将这些数字转换为两位数,方法是在它们前面加一个零,例如

1664;4;5;35;37;43;5;6
1663;21;23;32;40;49;8;11
1662;16;17;34;35;44;5;10
1661;2;9;23;32;40;6;7
1660;23;25;30;44;47;9;12
1659;3;5;9;32;43;6;10
1658;4;6;10;13;34;3;5
1657;8;9;33;35;40;3;6
1656;15;20;31;44;48;1;3
1655;25;27;35;40;45;7;11
1654;7;32;33;34;38;6;9
1653;5;7;11;27;37;6;12
1652;7;31;33;35;36;7;10
1651;4;12;34;35;45;1;9
1650;5;8;29;35;48;5;6
1649;2;11;28;42;48;4;9
1648;2;11;12;19;38;4;8
Run Code Online (Sandbox Code Playgroud)

代替

01 02 03 04 05 06 07 08 09
Run Code Online (Sandbox Code Playgroud)

提前致谢。

text-processing csv-simple

6
推荐指数
4
解决办法
1374
查看次数

rm -fr 不工作

我有一个由应用程序错误生成的目录,该目录的结构涉及 2000 多个目录,一个在另一个目录中,例如:

aaaa内部bob内部ccc内部ddd内部eee等目录。这些有 1000 层深,其中许多目录的名称中的空格是 URL 编码的(空格是%20>%3E等)。

如果我尝试使用删除该目录,rm -fr我会收到消息directory is not empty。我认为删除目录所需的字符串对于 UNIX 来说太长了。有没有办法删除这个目录rm

我在 Mac OS X Mountain Lion 上。

directory rm files

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

检查我是否可以从我的计算机访问某些端口

OSX 上是否有终端命令或其他东西可以用来测试我是否可以访问远程服务器上的某些端口?

我知道该服务器上可以访问这些端口,因为我可以从另一个网络上的另一台计算机访问它们,但我需要的是一种从另一台计算机测试的方法,如果我可以访问该端口,在这种情况下是 110 和 25(POP 和SMTP),从特定的计算机,如果可能的话,跟踪或可以做的事情来查看导致阻塞的原因。

osx networking ip tcp

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

从复杂的文件结构中提取数据

我有一个 txt 文件,它是来自数据库的转储,每行包含一个条目。结构是这样的:

1500
29/03/2010 
18
02
09
47
17
45
28.248
0
0.01
130
12.721
7908
298,809
YES
3.046.550,39
6.500.000,00
17,444,222


1501
30/03/2010
27
54
28
50
22
03
37.223
0
0.00
97
22,466
7379
421.90
NO
20,262,429
25,000,000.01
17,995,281.33


... the third record starts here
Run Code Online (Sandbox Code Playgroud)

该数据库包含 21 个字段。前几行显示了该数据库的两条记录的转储。空行代表数据库上的空白字段。

第一个字段 (F0) 是您看到的数字 1500、1501...

第二个字段 (F1) 是格式为日、月、年的日期。

字段 F2、F3、F4、F5、F6、F7 是六个整数。

我需要的是从这个文件中提取 F0、F2、F3、F4、F5、F6、F7,为每一行创建一行。

鉴于上述两条记录,最终文件将是

1500,18,02,09,47,17,45
1501,27,54,28,50,22,03
Run Code Online (Sandbox Code Playgroud)

我知道如何使用长达数英里的 bash 脚本来做到这一点,并在每一行上进行交互,等等。但我也知道 unix 是一堆技巧,特别是sed命令,这可能可以用简单的一行来完成。我喜欢学习新东西,所以我问你们 Unix 中的神,我该怎么做。

我在 OSX Mavericks 上。谢谢。

sed text-processing

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