Tôi đang sử dụng make
vàtar
để sao lưu. Khi thực hiện makefile, lệnh tar sẽ hiển thị file changed as we read it
. Trong trường hợp này,
- gói tar vẫn ổn khi cảnh báo xuất hiện
- nhưng nó dừng lệnh tar để sao lưu sau
- tệp hiển thị cảnh báo trên thực tế không thay đổi - thật kỳ lạ khi cảnh báo xuất hiện
- các tệp hiển thị cảnh báo xuất hiện ngẫu nhiên, ý tôi là, mỗi khi tôi chạy makefile của mình, các tệp hiển thị cảnh báo sẽ khác nhau
--ignore-failed-read
không giúp ích gì. Tôi đang sử dụng tar 1.23 trong MinGW- Tôi vừa đổi máy tính của mình thành WIN7 64 bit. Tập lệnh hoạt động tốt trong WIN7 32 bit cũ. Nhưng phiên bản tar không mới bằng phiên bản 1.23.
Làm cách nào để dừng cảnh báo của tar để dừng sao lưu sau cảnh báo?
Chỉnh sửa-2 : nó có thể là lý do
Như tôi đã nói ở trên, tập lệnh bash shell hoạt động tốt trong máy tính cũ của tôi. So sánh với máy tính cũ, msys
phiên bản là khác nhau. Phiên bản của lệnh tar cũng vậy. Trong máy tính cũ, tar là 1.13.19 và trong máy tính mới là 1.23. Tôi đã sao chép lệnh tar cũ mà không sao chép msys-1.0.dll phụ thuộc của nó vào máy tính mới và đổi tên thành tar_old. Và tôi cũng đã cập nhật lệnh tar trong shell script và chạy script. Sau đó, mọi thứ là ok. Vì vậy, có vẻ như vấn đề là lệnh tar. Tôi chắc chắn rằng không có bất kỳ tệp nào bị thay đổi khi gắn thẻ. Nó có phải là một lỗi cho lệnh tar trong phiên bản mới? Tôi không biết.
Chỉnh sửa-1 : thêm các chi tiết khác
Bản sao lưu được gọi bởi một tập lệnh bash shell. Nó quét thư mục đích và xây dựng makefile sau đó gọi lệnh make sử dụng tar để sao lưu. Tiếp theo là một makefile điển hình được xây dựng bởi bash shell script.
#--------------------------------------------
# backup VC
#--------------------------------------------
# the program for packing
PACK_TOOL=tar
# the option for packing tool
PACK_OPTION=cjvf
# M$: C driver
WIN_C_DIR=c:
# M$: D driver
WIN_D_DIR=d:
# M$: where the software is
WIN_PRG_DIR=wuyu/tools
# WIN_PRG_DIR=
# where to save the backup files
BAKDIR=/home/Wu.Y/MS_bak_MSYS
VC_FRAMEWORK=/home/Wu.Y/MS_bak_MSYS/tools/VC/VC_framework.tar.bz2
VC_2010=/home/Wu.Y/MS_bak_MSYS/tools/VC/VC_2010.tar.bz2
.PHONY: all
all: $(VC_FRAMEWORK) $(VC_2010)
$(VC_FRAMEWORK): $(WIN_C_DIR)/$(WIN_PRG_DIR)/VC/Framework/*
@$(PACK_TOOL) $(PACK_OPTION) "$@" --ignore-failed-read /c/$(WIN_PRG_DIR)/VC/Framework
$(VC_2010): $(WIN_C_DIR)/$(WIN_PRG_DIR)/VC/VS2010/*
@$(PACK_TOOL) $(PACK_OPTION) "$@" --ignore-failed-read /c/$(WIN_PRG_DIR)/VC/VS2010
Như bạn có thể thấy, gói tar được lưu trữ trong ~ / MS_bak_MSYS / tools / VC / VC_2010.tar.bz2. Tôi chạy tập lệnh trong ~ / qqaa. ~/MS_bak_MSYS
bị loại trừ khỏi lệnh tar. Vì vậy, tệp tar mà tôi đang tạo không nằm trong thư mục mà tôi đang cố gắng đưa vào tệp tar. Đây là lý do tại sao tôi cảm thấy kỳ lạ khi cảnh báo xuất hiện.