Trong Google Chrome trên Linux, flv ở đâu nếu không có trong / tmp?


37

Tôi thích giữ video vì

  1. Tôi thích đệm chúng và sau đó phát lại chúng trong trình phát đa phương tiện của tôi,
  2. Tôi muốn có thể dừng / khởi động lại trình duyệt của mình mà không mất tất cả video được đệm và
  3. Flash thường xuyên gặp sự cố và đưa cho tôi các hộp màu xám .

Đối với nhiều trang web có video Flash (bao gồm Youtube), tôi có thể tìm thấy tệp flv /tmp, thường được đặt tên FlashXX.... Nhưng một số trang web quản lý để ngăn chặn tệp này hiển thị, ví dụ: http://blip.tv/file/3627639 . Có thể điều này hoàn toàn không được lưu vào đĩa, nhưng điều đó sẽ gây ngạc nhiên vì toàn bộ video dài một giờ có thể được lưu vào bộ đệm mà RAM của tôi không bị ảnh hưởng rõ rệt.

Trong Firefox, tôi có thể tìm thấy flv trong thư mục bộ đệm của nó. Nhưng tôi tò mò làm thế nào để làm điều này trong Chrome. Tôi đã thử tìm kiếm dưới ~ / .cache / google-chrome / nhưng không tìm thấy bất cứ thứ gì có vẻ đúng. Ví dụ:

$ ls -lt .cache/google-chrome/Cache/ | head
total 261492
-rw------- 1 yang yang 16621568 2010-12-05 03:41 data_1
-rw------- 1 yang yang   966656 2010-12-05 03:40 data_0
-rw------- 1 yang yang 23076864 2010-12-05 03:40 data_2
-rw------- 1 yang yang   262512 2010-12-05 03:40 index
-rw------- 1 yang yang   108412 2010-12-05 03:35 f_005603
-rw------- 1 yang yang    62607 2010-12-05 03:32 f_005602
-rw------- 1 yang yang    54998 2010-12-05 03:32 f_005601
-rw------- 1 yang yang    31127 2010-12-05 03:32 f_005600
-rw------- 1 yang yang   799389 2010-12-05 03:32 f_0055ff

$ ls -1t ~/.cache/google-chrome/Cache/* | head | xargs file
/home/yang/.cache/google-chrome/Cache/data_1:   data
/home/yang/.cache/google-chrome/Cache/data_0:   data
/home/yang/.cache/google-chrome/Cache/data_2:   data
/home/yang/.cache/google-chrome/Cache/index:    data
/home/yang/.cache/google-chrome/Cache/f_005603: GIF image data, version 89a, 600 x 471
/home/yang/.cache/google-chrome/Cache/f_005602: PNG image, 600 x 746, 8-bit colormap, non-interlaced
/home/yang/.cache/google-chrome/Cache/f_005601: PNG image, 140 x 342, 8-bit/color RGB, non-interlaced
/home/yang/.cache/google-chrome/Cache/f_005600: JPEG image data, JFIF standard 1.02
/home/yang/.cache/google-chrome/Cache/f_0055ff: JPEG image data, JFIF standard 1.02
/home/yang/.cache/google-chrome/Cache/f_0055fe: gzip compressed data, from FAT filesystem (MS-DOS, OS/2, NT)

Tôi đã thử xem các tệp đang mở cho quy trình Flash, nhưng không thấy bất kỳ tệp Flash nào bị xóa, mà một loạt các câu trả lời dưới đây nên tồn tại:

$ ps x | grep npviewer
27148 ?        Rl     0:24 /usr/lib/nspluginwrapper/i386/linux/npviewer.bin --plugin /usr/lib/flashplugin-installer/libflashplayer.so --connection /org/wrapper/NSPlugins/libflashplayer.so/27135-2
27504 pts/2    S+     0:00 grep --color=auto npviewer

$ ls -l /proc/27148/fd/
total 0
lr-x------ 1 yang yang 64 2011-02-16 13:48 0 -> /dev/null
lrwx------ 1 yang yang 64 2011-02-16 13:48 1 -> /home/yang/.xsession-errors
l-wx------ 1 yang yang 64 2011-02-16 13:48 10 -> /home/yang/.mozilla/firefox/8wy5j0z2.default/key3.db
lrwx------ 1 yang yang 64 2011-02-16 13:48 11 -> pipe:[5500575]
lrwx------ 1 yang yang 64 2011-02-16 13:48 12 -> /home/yang/.adobe/Flash_Player/cert8.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:48 13 -> /home/yang/.adobe/Flash_Player/key3.db (deleted)
lr-x------ 1 yang yang 64 2011-02-16 13:48 14 -> /home/yang/.adobe/Flash_Player/cert8.db (deleted)
l-wx------ 1 yang yang 64 2011-02-16 13:48 15 -> /home/yang/.adobe/Flash_Player/key3.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:48 16 -> /home/yang/.adobe/Flash_Player/cert8.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:48 17 -> /home/yang/.adobe/Flash_Player/key3.db (deleted)
lr-x------ 1 yang yang 64 2011-02-16 13:48 18 -> /home/yang/.adobe/Flash_Player/cert8.db (deleted)
l-wx------ 1 yang yang 64 2011-02-16 13:48 19 -> /home/yang/.adobe/Flash_Player/key3.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:48 2 -> /home/yang/.xsession-errors
lrwx------ 1 yang yang 64 2011-02-16 13:48 20 -> /home/yang/.adobe/Flash_Player/cert8.db (deleted)
lr-x------ 1 yang yang 64 2011-02-16 13:48 21 -> /home/yang/.adobe/Flash_Player/key3.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 22 -> /home/yang/.adobe/Flash_Player/cert8.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 23 -> /home/yang/.adobe/Flash_Player/key3.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 24 -> /home/yang/.adobe/Flash_Player/cert8.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 25 -> /home/yang/.adobe/Flash_Player/key3.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 26 -> /home/yang/.adobe/Flash_Player/cert8.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 27 -> /home/yang/.adobe/Flash_Player/key3.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 28 -> /home/yang/.adobe/Flash_Player/cert8.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 29 -> /home/yang/.adobe/Flash_Player/key3.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:48 3 -> socket:[5496032]
lrwx------ 1 yang yang 64 2011-02-16 13:51 30 -> /home/yang/.adobe/Flash_Player/cert8.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 31 -> /home/yang/.adobe/Flash_Player/key3.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 32 -> /home/yang/.adobe/Flash_Player/cert8.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 33 -> /home/yang/.adobe/Flash_Player/key3.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 34 -> /home/yang/.adobe/Flash_Player/cert8.db (deleted)
lrwx------ 1 yang yang 64 2011-02-16 13:51 35 -> /home/yang/.adobe/Flash_Player/key3.db (deleted)
l-wx------ 1 yang yang 64 2011-02-16 13:53 36 -> pipe:[5500575]
lr-x------ 1 yang yang 64 2011-02-16 13:53 37 -> pipe:[5500576]
l-wx------ 1 yang yang 64 2011-02-16 13:53 38 -> pipe:[5500576]
lrwx------ 1 yang yang 64 2011-02-16 13:53 39 -> socket:[5500580]
lrwx------ 1 yang yang 64 2011-02-16 13:48 4 -> socket:[5496131]
lr-x------ 1 yang yang 64 2011-02-16 13:48 5 -> pipe:[5496139]
l-wx------ 1 yang yang 64 2011-02-16 13:48 6 -> pipe:[5496139]
lr-x------ 1 yang yang 64 2011-02-16 13:48 7 -> socket:[5496140]
l-wx------ 1 yang yang 64 2011-02-16 13:48 8 -> socket:[5496141]
lr-x------ 1 yang yang 64 2011-02-16 13:48 9 -> /home/yang/.mozilla/firefox/8wy5j0z2.default/cert8.db

Tôi đã thử straceing tất cả các quy trình chrome cho bất cứ thứ gì trông giống như nó có thể đang viết một tệp:

strace -p (pgrep chrome|xargs -I_ echo -p _)

nhưng nhìn vào write/ writev/ selectthực hiện cuộc gọi chỉ tôi đến một vài FD đó /proc/_/fd/cho thấy là ống / ổ cắm (có lẽ cho các quá trình để nói chuyện với nhau). Cũng đã thử điều tương tự trên npviewer.binquy trình.

Tôi cũng đã cố gắng đơn giản kiểm tra tất cả các tệp được chỉ ra /proc/*/fd/( bất kỳ quy trình nào ) đã được sửa đổi gần đây, nhưng không tìm thấy bất cứ thứ gì trông giống như nó chứa một flv. Tôi cũng đã thử kiểm tra tương tự trên các tập tin sửa đổi gần đây ~/.cache/google-chrome/.

Nếu nó tạo ra sự khác biệt, tôi đang sử dụng bản phát hành kênh dev của Chrome mà tôi tin rằng (luôn luôn?) Sử dụng triển khai Flash an toàn của chính nó. Tại thời điểm cập nhật này, tôi đang sử dụng Chrome 10.0.648,45 dev. Theo http://www.adobe.com/software/flash/about/ Tôi đang chạy 10.2.152.27. Tôi đã thử trên một số hộp Ubuntu bây giờ. Bây giờ tôi cũng đã thử trên một số hộp Ubuntu, với kết quả tương tự.

Bất cứ ai khác muốn có một đâm ở đây?


Nó có thể hữu ích nếu bạn cung cấp liên kết đến một trang mà bạn gặp sự cố.
Sophie Alpert

@Ben: Rất tiếc, tôi có ý làm điều đó. Thêm!
Dương

Câu trả lời:


31

Tôi đã quan sát thấy các plugin Flash gần đây lưu trữ các tệp trong / tmp, nhưng chúng sử dụng một thủ thuật loại bỏ chúng và giữ một tệp tin mở để giữ cho chúng tồn tại. Điều này có nghĩa là chúng vẫn được giữ trên ổ đĩa (miễn là tệp file được mở bằng flash plugin), nhưng chúng không hiển thị trong danh sách thư mục (vì tệp đã bị xóa).

Tôi đã viết về khoảng thời gian này: nhận video flash từ các tệp gần như bị xóa

Nhưng tất cả phụ thuộc vào phiên bản của Flash plugin. Nó được sử dụng để lưu trữ phim trong / tmp hoặc trong bộ nhớ cache của trình duyệt.


Bài đăng trên blog rất thú vị của bạn mô tả việc này với Firefox, nhưng tôi tự hỏi làm thế nào để làm điều này bằng Chrome. Tôi đã xem lsof và / Proc, nhưng không tìm thấy bất kỳ dấu hiệu nào của các tệp không được liên kết. Bạn đã thành công với video ví dụ?
Dương

1
@Yang: Cách chính xác tương tự hoạt động với chrome, ít nhất là trên máy tính xách tay của tôi - vừa được thử nghiệm. Tôi nghĩ rằng nó phụ thuộc nhiều vào flash player hơn là trên webbrowser. Bạn có phiên bản plugin Flash nào?
liori

Theo adobe.com/software/flash/about Tôi đang chạy 10.2.152.27, mà tôi nghĩ là Flash được tích hợp trong Chrome (sử dụng Chrome 10.0.648,45 dev). Tôi đã thử trên một số hộp Ubuntu bây giờ.
Yang

2
Một lưu ý, có vẻ như trong khi nó từng hoạt động với tất cả các trình phát phim flash, thì nó không còn như vậy nữa. Nó dường như hoạt động với một số trang web ít được biết đến, nhưng không phải Youtube. Tôi chỉ có thể đoán rằng Youtube đã tìm ra cách để loại bỏ tệp khỏi hệ thống tệp Tập tin
liori

1
nó vẫn hoạt động với tôi với phiên bản Chromium 33.0.1750.152-1 (Debian Jessie) và phiên bản flashplayer 11,2,202,346 (theo adobe.com/software/flash/about )
jopasserat

24

Kiểm tra / Proc // fd / đã lừa tôi:

$ ps x | grep npviewer
24657 ?        Sl    12:33 /usr/lib/nspluginwrapper/i386/linux/npviewer.bin ...
$ cd /proc/24657/fd
$ ls -l
total 0
lr-x------ 1 omab omab 64 2011-02-11 02:13 0 -> /dev/null
lrwx------ 1 omab omab 64 2011-02-11 02:13 1 -> /home/omab/.xsession-errors
lr-x------ 1 omab omab 64 2011-02-11 02:13 10 -> /home/omab/.mozilla/firefox/og3emjry.default/key3.db
lrwx------ 1 omab omab 64 2011-02-11 02:13 11 -> /tmp/FlashXX0WG0J5 (deleted)
lr-x------ 1 omab omab 64 2011-02-11 02:13 12 -> pipe:[9004372]
...

Tệp 11 , tệp được đánh dấu là "(đã xóa)", vẫn trỏ đến tệp ban đầu được tạo trên / tmp /, vì vậy nó không bị xóa hoàn toàn:

$ file -L 11 
11: Macromedia Flash Video

làm một:

$ mplayer 11

sẽ sao chép tập tin FLV.


Dưới đây là một dòng lệnh khá tiện dụng được điều chỉnh từ quy trình trên. Nó có thể yêu cầu điều chỉnh nhỏ cho phân phối / cài đặt của bạn và quá trình bạn thường chạy.

Bạn có thể thay thế flashbằng npviewer, thay thế vlcbằng mplayer:

FLASHPID=\`pgrep -f flash\`; vlc /proc/$FLASHPID/fd/\`ls -l /proc/$FLASHPID/fd | grep tmp | cut -d" " -f9\`

Điều này không hiệu quả với tôi - Tôi đã cập nhật câu trả lời của mình với các chi tiết về những gì tôi thấy. Bạn có biết tại sao nó có thể không làm việc cho tôi? Tôi đã thử trên một số máy bây giờ.
Dương

BTW, bạn có thể lưu flv vớimplayer 11 -dumpstream -dumpfile outputname
liewl

8
Bạn chỉ có thể sao chép nó cp 11 / ... / ...
omab

10

Các luồng flash hầu hết thời gian là các tệp đơn giản nhận được bởi một yêu cầu http.

Đối với video của bạn tại http://blip.tv/file/3627639

Trong Google Chrome, bạn có thể kiểm tra các yêu cầu mạng ( ctrl + shift + i) tìm kiếm lâu nhất để kết thúc trong trường hợp của bạn:

Fosslc-..
/file/get

nhấp vào nó và sao chép / dán url từ trường 'URL yêu cầu', sang một tab mới

http://blip.tv/file/get/Fosslc-2...to823.flv?showplayer=20110401114509&source=1


Tuyệt diệu! Tôi mong muốn chấp nhận câu trả lời của bạn vì nó thực sự hiệu quả với tôi, nhưng tôi sẽ đợi thêm một chút nữa để xem liệu có câu trả lời nào khác thực sự xác định vị trí của flv đã tải xuống không.
Yang

xin vui lòng không chấp nhận nó, vì nó chỉ là một mẹo cho trường hợp của bạn. Tôi thực sự muốn biết nơi flash flash lưu trữ các tập tin video tạm thời.
Doud

Heh, được rồi. Tôi muốn biết là tốt. Linh cảm của tôi là nó sẽ được lưu trữ ở đâu đó trong các tệp data_ *, có thể là các đống dành riêng cho trình duyệt. Mặc dù vậy, tôi không thể tìm thấy bất kỳ công cụ nào để lục lọi chúng, rút ​​ngắn cơ sở mã Chrome.
Yang

9

Dương

Vâng, đó là trong ~ / .cache / google-chrome / Cache (tốt, tôi đã cài đặt Chromium nên tôi đã tìm thấy nó trong ~ / .cache / chromium / Cache).

Nếu bạn xem video và sắp xếp theo dấu thời gian:

$ ls -rt | tail
f_00003a
f_00003b
f_00003c
f_00003d
data_2
data_3
index
data_1
f_000040
data_0

Sau đó, nếu bạn chạy lệnh tập tin, bạn sẽ thấy những cái nào là Flash:

$ file $(ls -rt | tail)
f_00003a: Macromedia Flash data (compressed), version 9
f_00003b: Macromedia Flash data (compressed), version 9
f_00003c: Macromedia Flash data (compressed), version 10
f_00003d: PNG image data, 1024 x 768, 8-bit/color RGBA, non-interlaced
data_2:   data
data_3:   data
index:    data
data_1:   data
f_000040: Macromedia Flash Video
data_0:   data

OK, tôi đã cài đặt Google Chrome để kiểm tra.

Có vẻ như thư mục dành cho Google Chrome hơi khác so với Chromium.

Sử dụng các kỹ thuật tương tự (ở đây chỉ định ID tiến trình của trình duyệt, đầu ra đã xóa một số cột cho rõ ràng):

$ lsof -p 27922 | grep Cache
chrome  27922 mem     ~/.cache/google-chrome/Default/Cache/index
chrome  27922 mem     ~/.cache/google-chrome/Default/Cache/data_3
chrome  27922 mem     ~/.cache/google-chrome/Default/Cache/data_2
chrome  27922 mem     ~/.cache/google-chrome/Default/Cache/data_1
chrome  27922 mem     ~/.cache/google-chrome/Default/Cache/data_0
chrome  27922  71u    ~/.cache/google-chrome/Default/Cache/index
chrome  27922  72u    ~/.cache/google-chrome/Default/Cache/data_0
chrome  27922  73u    ~/.cache/google-chrome/Default/Cache/data_1
chrome  27922  74u    ~/.cache/google-chrome/Default/Cache/data_2
chrome  27922  75u    ~/.cache/google-chrome/Default/Cache/data_3
chrome  27922 111u    ~/.cache/google-chrome/Default/Cache/f_00001a

Điều đó thật hấp dẫn, bởi vì nó không hiệu quả với tôi. Tôi cập nhật câu trả lời của tôi với một dán của những gì tôi thấy. Nó có hoạt động với bạn với ví dụ URL blip.tv tôi đã cung cấp không? Có lẽ đó là do một phiên bản Chrome khác - bạn đang sử dụng?
Yang

Vâng, tôi đã sử dụng URL chính xác của bạn. Bạn đã chơi tập tin trong khi chạy các lệnh? Hãy thử xóa bộ nhớ cache của bạn, phát tệp và sau đó chạy các lệnh. Nó hoạt động với tôi và tôi có thể phát tệp trong Mplayer để nó hoạt động với tôi!
jyap

Than ôi, xóa bộ nhớ cache đã không giúp đỡ. Có, tập tin đã được phát trong khi tôi đang chạy các lệnh này. Cập nhật câu trả lời của tôi với nhiều thông tin hơn. Một số người trả lời nói rằng tôi nên xem quy trình Flash, những người khác nói tôi nên xem một trong các quy trình của trình duyệt, nhưng tôi đã thử cả hai, thậm chí xem tất cả các quy trình. Bất cứ ý tưởng về lý do tại sao nó bị phá vỡ cho tôi? Tôi đã thử trên một số máy bây giờ.
Dương

Tôi đã chỉnh sửa câu trả lời của mình ở trên để chỉ định ID quy trình của Google Chrome và chạy lệnh lsof. Hãy thử nó.
jyap

5

sử dụng chromium 11.0.666.0 và flash plug-in 10.2.152

grepping cho npviewer không tạo ra bất kỳ quy trình flash nào cho tôi nhưng grepping cho flash thì không:

$ ps x | grep flash
11005 ?        Rl     2:30 /usr/lib/chromium-browser/chromium-browser ... 

về cơ bản giống như jyap ở trên đề xuất với

lsof | grep Flash

và sau đó bạn có thể tiến hành như trên ...


Điều này không hiệu quả với tôi - Tôi đã cập nhật câu trả lời của mình với các chi tiết về những gì tôi thấy. Bạn có biết tại sao nó có thể không làm việc cho tôi? Tôi đã thử trên một số máy bây giờ.
Dương

3

Hãy thử liệt kê ra các tập tin đang mở.

lsof | grep Flash

Điều này có làm việc cho bạn? Không bật lên bất cứ điều gì cho tôi - Tôi cũng không đoán được điều đó, với điều kiện là các tệp Flash * điển hình không hiển thị ở vị trí thông thường của chúng.
Yang

3

Một số trình phát mới hơn đệm trong bộ nhớ để cố gắng khiến mọi người không thể sử dụng các thủ thuật này. Bạn sẽ không thể có được bất cứ điều gì trong trường hợp đó.


Mặc dù đây là thông tin hữu ích và hãy nhớ rằng tôi không biết cách thăm dò RAM (chỉ có thể là như vậy), tôi không đồng ý rằng bạn "sẽ không thể có được bất cứ điều gì". Nơi nào có ý chí nơi đó có dường đi.
user66001

3

Tôi đã sửa vấn đề này. Đây là các bước

  1. Goto đã cài đặt các plugin về: plugin trong chrome / mozilla
  2. Nhấn vào Chi tiết để xem với nhiều thông tin hơn. Vô hiệu hóa Plugin Flash. Vị trí của plugin sẽ là / / rr
  3. Tải xuống phiên bản tar.gz của trình phát flash từ đây http://get.adobe.com/flashplayer/
  4. Trích xuất tệp đó và sao chép libflashplayer.so vào / usr / lib / chromium-browser / plugin. Sau đó kích hoạt tính năng này trong trang plugin.
  5. Nếu bạn xem bất kỳ video nào, nó sẽ tải xuống trong /home//.cache/chromium/Default/Cache thư mục này

hãy xem http://www.arulraj.net/2011/03/google-chrome-doad-video.html


2

Đối với Chrome mới nhất trên Linux:

  1. Xác định pid của plugin Flash được Chrome sử dụng:

    ps ax | grep -i chrome | grep -i flash 
    

    đến bây giờ các plugin được gọi libgcflashplayer.

  2. Xác định tệp Flash được mở bằng quy trình plugin Flash này:

    file /proc/Flash_Plugin_PID/fd/* | grep -i deleted
    

    hoặc là

    lsof -p Flash_plugin_pid | grep -i deleted
    

    Tìm kiếm các tập tin bị xóa.

  3. Sao chép tập tin từ /proc/[pid]/fd/[fileno]đếnrecovered_file.flv


2

Tôi đang sử dụng chrome 11,06 trên Ubuntu 10.04. Tôi đã tìm thấy các tệp flv của mình trong ~ / .cache / google-chrome / Default / Cache. Hãy thử một

file * | grep Flash\ Video

2

Một mẹo nhỏ từ tôi. Điều này hoạt động trong Ubuntu 10.04.

#!/bin/bash
viewer=`ps x|grep npviewer|grep -v grep |awk '{print $1}'`
echo $viewer
cd /proc/${viewer}/fd
jef=(`ls -l|awk '{print $8 " " $10}'|grep Flash|awk '{print $1}'`)
echo $jef
jef1=${#jef}
ext=`date +'%d_%m_%k_%M_%S'`
i=0
while [ "$i" -lt "$jef1" ]
do 
cp ${jef[${i}]} /fun/${jef[${i}]}"(${ext})".flv
i=`expr $i + 1`
done

Bây giờ bạn có thể lên lịch cho kịch bản này với crontab. Nó có thể được tối ưu hóa để không có các tập tin FLV trùng lặp.


2

Sử dụng Firefox trên Kubfox:

export COUNT=0
export FILENAME=$1
export FILENAME=${FILENAME:=test}

PID=`ps ax | grep -i flashplugi[n] | awk '{print $1}'`
FLASH=`ls -l /proc/$PID/fd| grep Flash | awk '{print $8}'`

for N in $FLASH ; do
  COUNT=$(($COUNT+1))
  cp /proc/$PID/fd/$N ${FILENAME}_${COUNT}.flv
done

0

Tôi có một cách khác để làm điều đó dựa trên bộ mô tả tệp được thành lập trong / Proc (Tôi sử dụng bash hiện đại trong một vài dòng)

#!/bin/bash

process="flash"
filename="flash"

readlink -f /proc/$$/exe | fgrep -q bash || {
    echo >&2 "Hey dude ! You must call $0 with bash !"
    exit 2
}

. ~/.bashrc || . /etc/profile

count=1
for pid in $(pgrep -f $process); do
    fds=$(file /proc/$pid/fd/[0-9]* | fgrep Flash | cut -d: -f1)
    for fd in $fds; do
        cp -v $fd ${filename}_${count}.flv
        ((count++))
    done
done

# vim:ts=4:sw=4
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.