rsync-with-sparse-file tags: #rsync #devops #linux #migration
Có thể dùng
rsync để chuyển bộ cài đặt Linux qua một đĩa cứng mới (cùng máy) hoặc qua một máy hoàn toàn khác. Tóm tắt bước cơ bản 1. (tùy chọn) tắt hết các dịch vụ đang ghi vào ổ cứng nguồn (A) 1. Chạy
rsync với (option) phù hợp để chép qua đĩa đích (B) 1. Fix /etc/fstab và bootloader Bước cuối cùng thì dễ, giống như khi bạn cài máy mới. Lưu ý là phải đảm bảo
/etc/mtab là một symlink $ ls -ld /etc/mtab
... /etc/mtab -> ../proc/self/mounts
Chạy
rsync trong phần lớn trường hợp có thể dùng như sau, với quyền root: # mount /dev/new_device /mnt/new_disk_B/
# rsync -avx \
--progress \
/ \
/mnt/new_disk_B/ \
--exclude="/dev/*" \
--exclude="/proc/*" \
--exclude="/sys/*"
Ý nghĩa vài tham số quan trọng:
-a để chép ở chế độ archive, tham số này là viết tắt cho tổ hợp -rlptgoD, trong đó 1.
-r: chép mọi thư mục, thư mục con và tập tin của chúng 2.
-l: chép các symlink 3.
-p, -o, -g, -t: bảo toàn các quyền cơ bản (cấp bởi chmod, chown), các mốc thời gian liên quan đến tập tin hay thư mục, không bao gồm các quyền mở rộng (extended attributes (-X) hay thông tin phân quyền ACL (-A), cũng không bảo toàn các hardlink (-H)), 4.
-x: chỉ chép các nội dung được kết nối (mount) vào các thư mục con của thư mục /. 5. Các tham số
--exclude để bỏ qua mấy thứ không cần thiết (thực ra thì nếu không có chúng bạn sẽ phải chờ rụng râu.) Nếu hệ thống cũ (A) của bạn có nhiều phân vùng, ví dụ
/boot, /home, /usr/ thì sau lệnh ở trên nội dung của chúng không được chép qua ổ mới do tham số -x ngăn cản việc này. Bạn có thể lặp lại, ví dụ rsync -avx --progress /boot/ /mnt/new_disk_B/boot/
Xong, đơn giản quá nhen. Ồ không, còn tập hai là điều bạn phải lưu ý:
1. Nếu bạn xài docker với
overlayfs, bạn có thể bỏ nó ra khỏi lệnh rsync đầu tiên (--exlude=/var/lib/docker/*), lý do là các hardlink hay sparse file bên trong /var/lib/docker/ (hoặc thư mục khác tùy do bạn cấu hình trong /etc/docker/daemon.json) sẽ khiến bạn chờ rất lâu. Sau đó, dùng
rsync riêng cho thư mục /var/lib/docker với tham số tương tự trên, bổ sung thêm -HSX. Ở đây, -S (hay --sparse) là tùy chọn để chép các tập tin sparse. Nếu không có gì quan trọng bạn cứ xóa luôn /var/lib/docker/ cho khỏe. 2. (Tùy chọn) Nếu có các tập tia đĩa ảo dùng với
Virtualbox, qemu gì đó, bạn cũng gặp các tập tin sparse như trên. Khi đó bạn dùng tùy chọn -S trước, rồi tiếp theo, bỏ đi tùy chọn này, chạy lại cùng lệnh rsync nhưng với tùy chọn --inplace. Tùy chọn -S chạy lần đầu tiên sẽ tạo ra các block cần thiết trên ổ đĩa mới B, còn lần sau sẽ chỉ chép các block có thay đổi nội dung. Nếu dữ liệu ít bạn có thể ngồi chờ. Nếu nhiều bạn cứ việc dùng máy thoải mái, sau khi chạy
rsync lần đầu thì bạn thực hiện bước 1 tắt mạng, tắt tất cả các chương trình đang ghi vào ổ đĩa A rồi chạy lại các lệnh rsync cần thiết. Khi đó với các tập tin sparse thì việc dùng --inplace rất mau lẹ, nếu không bạn phải chờ chép 20G hay cả 100G gồm toàn những block không có dữ liệu =)) Về các tập tin Sparse bạn có thể tham khảo ArchLinux wiki hay https://gergap.wordpress.com/2013/08/10/rsync-and-sparse-files/
-- 904d1dac (Ky-Anh Huynh 2019-03-17 16:40:12 +0700 7) at https://github.com/linuxvn/about/blob/master/Notes-2019.md#rsync-with-sparse-file
🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞
root-is-rut https://github.com/linuxvn/about/blob/master/Notes-2019.md#root-is-rut
tags: #root #shell #linux #rut
Nhiều chỗ phải xài
root shell, không né được. Không phải do công ty to nhỏ gì, không phải sản phẩm tốt xấu gì. Chẳng qua... xài root thì quá tiện, giống đi xe máy ở Sài Gòn vậy, chỗ nào cũng tới được. Ông ops/admin trước lười thì ông sau lãnh đủ, vậy thôi. Phần dưới nêu vài chuyện vui khi nghịch với lửa đây.
1.
hostname -f nhầm thành hostname f: Một số bàn phím trời đánh, nhả phím không được, nên sau lệnh hostname f thì toi, bạn phải đi lục tung history lên coi hostname cũ thế nào mà phục hồi lại. 2.
copy-&-paste: thế kỷ 21 rồi nhỉ, nhưng copy một chỗ rồi paste ra chỗ khác không phải lúc nào cũng đúng ý đâu nhe :) Cẩn thận nhất, trước khi dán vào terminal/shell, bạn thử dán ra chỗ nào đó trước. Không thì lâu lâu gà gà gật gật là y như rằng một mớ thứ nhảy múa trong terminal. Bạn thử chép nội dung log sau vào dán vào terminal xem: https://gist.github.com/icy/d8d2598acc31523317b93547d35bb304 :) 3.
shutdown nhầm: thôi khỏi cần nói gì thêm nhe, mất công haha 4. Mất
/dev/zero hay /dev/null hay /dev/log: Nghe buồn cười nhưng chuyện kỳ dị này cũng có thể xảy ra: Ví dụ nè https://icy.theslinux.org/m/kyanh.net/2015/06/06/the-slig-returns/index.html#slig29. Vấn đề là nhiều khi khó nhận biết cho tới khi .. khá trễ. Khi mất /dev/null thì bạn vẫn xài nó khá bình thường, ví dụ cat foo > /dev/null, cho tới khi... đĩa đầy chẳng hạn. 5.
Lock down: hihi, sudo có cú pháp trời đánh để nạp cấu hình bên ngoài, ví dụ #includedir /etc/sudoers.d. Nhiều bạn gà gà gật gật cho mình là siêu nhân, chỉnh lại cho đúng includedir /etc/sudoers.d, xong đi uống cà phê, ăn trưa rồi tắt server mount lên chỗ khác fix lại. 6.
/etc/nginx/sites-enabled/:wq: Ơ, bạn đoán ra cái gì đây không? Là do một chuyên gia vi/vim xài nano. Thiệt tình là sau khi lưu file đó xuống đĩa rồi thì anh em đi fix cả ngày không biết tại sao cấu hình mới không ăn =)) Lưu ý nhỏ nhẹ cuối cùng,
nohup luôn là biên giới trong cuộc chiến giữa dev và admin. Lần nào đĩa đầy là admin phải lọ mọ vào xài lsof soi lên nohup nằm ở đâu (file đó cũng hay bị xóa cho gọn đĩa ấy mà.) Tạm dừng ở đây, khi nào nhớ ra viết tiếp.
-- 0ce76975 (Ky-Anh Huynh 2019-04-24 04:41:54 +0700 31) at https://github.com/linuxvn/about/blob/master/Notes-2019.md#root-is-rut
🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞
welcome-back-stk-and-huy https://github.com/linuxvn/about/blob/master/Notes-2019.md#welcome-back-stk-and-huy
tags: #linux #vn #saigonlug
ArchLinuxVn chào mừng sự trở lại của các bạn An stk và Huy-Ngo trên nhóm telegram @linuxvn. Sau thế chiến thứ ba, các bạn đã lưu lạc quá lâu, đi làm kinh tế ở đâu không biết nhưng lúc trở lại đã tăng gấp đôi băng thông cho hệ thống mirror (f.archlinuxvn.org) là điều thật đáng trân trọng. ArchLinuxVn chỉ còn là cái tên từ hồi xưa. Nhiều bạn giờ nâng cấp lên phiên bản MacOS của ArchLinux. Giờ ngồi với nhau người ta không hỏi Linux là gì, mà hỏi Docker là gì, rồi k8s là gì.... Kể ra, không phải vì ai cũng đã hiểu Linux, chẳng qua Linux không còn phải là cách dễ kiếm cơn như ngày xưa nữa. Sự trở lại của An stk và Huy Ngo còn được đánh dấu bởi việc phiên bản kế tiếp của MacOS chuyển qua shell mặc định trên hệ thống là
zsh, thay vì Bash-3. Mình đã gặp rất nhiều trục trặc khi hỗ trợ cho người dùng Bash trên máy MacOS, giờ chắc đau đầu hơn. Nhưng thật sự GPL có vấn đề với bọn nhà giàu. Biết sao, buồn một phút. Cảm ơn các bạn An stk và Huy Ngô.
-- 6ea273a4 (Ky-Anh Huynh 2019-06-17 02:36:17 +0700 41) at https://github.com/linuxvn/about/blob/master/Notes-2019.md#welcome-back-stk-and-huy
🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞🐞