Jakie są największe szkody (jakiegokolwiek rodzaju), jakie kiedykolwiek spowodowałeś za pomocą jednego błędnego / błędnego / błędnego wiersza poleceń? Na przykład przez pomyłkę usunąłem bazę danych systemu produkcyjnego, ale miałem szczęście (tzn. Utworzono kopię zapasową) i nie było trwałej utraty danych, utraconych pieniędzy, szkód majątkowych itp.
Co najważniejsze (w przypadku głosów), co robisz, aby upewnić się, że to się więcej nie powtórzy?
command-line-interface
Mark Henderson
źródło
źródło
Odpowiedzi:
Na serwerze SQL w systemie produkcyjnym:
Ostatnia kopia zapasowa miała tydzień.
Aby to złagodzić, zwykle piszę
select
najpierw instrukcję, aby upewnić się, żewhere
klauzula jest poprawna, a następnie wróć i edytuj ją, aby wstawićset
klauzulę i zmienić ją naupdate
.źródło
Największy błąd? Myśląc, że ustawiłem dwie zmienne, kiedy tego nie zrobiłem. Więc rm -rf $ VARIABLE / $ VARIABLE2 zmieniło się w rm -rf /. FreeBSD niedawno zaktualizowało swoje narzędzie rm, aby rm -rf / nie było już możliwe właśnie z powodu tego błędu!
źródło
przeznaczony dla lokalnej stacji roboczej, ale wpisał ją podczas logowania przez ssh na serwerze produkcyjnym. Od tego czasu zawsze mam nazwę hosta
$PS1
.źródło
Pominięcie -r z polecenia zamknięcia. Na zdalnym serwerze. Po drugiej stronie kraju. Bez personelu IT w zdalnym biurze.
Wszyscy to zrobiliśmy, na tym etapie jest prawie jak rytuał przejścia.
źródło
W systemie VMS używałem komendy ASSIGN DCL do przypisywania nazw logicznych i chciałem PRZYWOŁOWAĆ poprzednią linię komend ASSIGN. Teraz w VMS wpisałeś tylko tyle znaków polecenia, aby było to jednoznaczne. Więc zamierzałem pisać
REC ASS
ale przypadkowo wpisałem
REQ ASS
zamiast. REQ było wystarczająco jednoznaczne dla komendy REQUEST, która rozgłasza ten argument każdemu, kto ma uprawnienia operatora (którym było wszyscy w IT). Cały dział otrzymał więc moją wiadomość, która była po prostu „ASS”.
źródło
W systemie Solaris: „killall dataLoader”.
„dataLoader” to aplikacja, nad którą pracowałem. W Linuksie killall działa jak pkill. Wysyła sygnał do procesów, które pasują do ciągu podanego jako argument. W systemie Solaris killall próbuje zabić wszystko w systemie, w którym bieżący użytkownik może zabić. Byłem rootem.
źródło
java
na pewno zabiłeś . ;)Kiedyś, wiele, wiele księżyców temu, musiałem znaleźć konkretny plik wykonywalny, ale nie mogłem zapamiętać jego pełnej nazwy (ale mogłem zapamiętać kilka liter). Pomyślałem więc, że sprawdzę katalog / usr / bin za pomocą czegoś takiego
Dziwne. Nic nie wróciło. Uznając, że właśnie źle zapamiętałem drugi list, spróbowałem ponownie
Znowu nic. Po zrobieniu tego samego z / usr / local / bin, / usr / sbin i cokolwiek innego, co, jak przypuszczałem, może być, zdałem sobie sprawę, że źle wpisałem polecenie „ls”.
Nie bardzo wiem, skąd się wziął ten mózg, ale zdecydowanie nie jest to błąd, który kiedykolwiek popełniłem.
źródło
To był Windows Vista.
źródło
Próbuję zmienić własność wszystkiego w katalogu, w tym plików kropek, za pomocą:
Zgadnij co to robi?
źródło
Chciałem zniszczyć / dev / sdb, na szczęście miałem dobrą, aktualną kopię zapasową
źródło
Na pudełku produkcyjnym. Zwróć uwagę na brak
on
klauzuli. :-) Obie tabele były wielomilionowymi tabelami wierszy, a było to na AS / 400 w połowie lat 90., gdzie po uruchomieniu SQL nie można było go zabić.źródło
Na jednym z naszych serwerów do produkcji danych jeden z moich korzeni napisał:
Ponieważ pojawiał się błąd uprawnień w niektórych skryptach ...
Wkrótce potem jego klucz prywatny został usunięty ze wszystkich serwerów i zajął się przywracaniem danych 1 TB na serwerze do produkcji danych ...
źródło
Moim ulubionym było, gdy byłem na uniwersytecie. Budowałem aplikację (nie pamiętam co) i ponieważ nie byłem rootem, zbudowałem ją
Więc mógłbym zainstalować to w moim katalogu domowym. Niestety zainstalowano w
zamiast. Oczywiście, aby go usunąć, jak zacząć od nowa, wykonałem
W katalogu źródłowym.
Zastanawiałem się, dlaczego to trwało tak długo ...
:-)
Jednak najgorsze było, gdy pracowałem ze stacją roboczą Solaris i po otrzymaniu wszystkich ustawień chcieliśmy wyczyścić konfigurację gotową do konfiguracji na żywo. Więc straciłem
Zgodził się na komunikat ostrzegawczy i zamiast ponownego uruchomienia komputera i powrotu do „ustawień fabrycznych” Okno xterm po prostu powiedziało
Morał tej historii Nigdy nie pozostawiaj otwartej skorupy root na innym hoście! ZAWSZE!!
źródło
Wiele lat temu byłem w domu, pracując nad php, pracując nad projektem z moim kumplem, który był opiekunem projektu. Rozmawialiśmy ze sobą w ramach współpracy. Zawsze żartujemy w tę iz powrotem.
Starałem się, aby ssh-agent działał poprawnie na mojej maszynie podczas wojny religijnej między Perlem a PHP. Potem wspomniałem coś o tym, że ssh-agent wymaga ewaluacji (nie jestem pewien, dlaczego to powiedziałem). Więc wysłał mi tę wiadomość, starając się pomóc w rozwiązaniu mojego problemu (pamiętaj, że mam uprawnienia do rootowania):
OSTRZEŻENIE! NIE URUCHAMIAJ TEGO POLECENIA !!!
JEŚLI usuniesz ewaluację i uruchomisz wewnętrzną komendę, jest to:
Zajęło mi to 4 sekundy, aby zauważyć, co się dzieje, ale szkody już zostały wyrządzone. Musiałem ponownie zainstalować system operacyjny. Na szczęście nic z mojej pracy nie zostało usunięte, z wyjątkiem niektórych rzeczy w / etc iirc. Śmiał się OGROMNIE, kiedy wysłałem mu wiadomość z przerażeniem, pytając, dlaczego to zrobił. Obaj jesteśmy inżynierami systemów długoterminowych. Nie sądził, żebym go uruchomił i byłbym bardziej ostrożny, aby to sprawdzić przed zwykłym c & p'ingiem, a ja po prostu mu zaufałem, więc nawet nie pomyślałem, że się bawił. Nie trzeba dodawać, że ta krótka historia pojawia się między nami cały czas. Więc postanowiłem to uwiecznić.
Jak złagodziłem ten problem? Nikomu nie ufam!
Inna mniej interesująca historia to kilka lat temu, kiedy pracowałem nad skrzynką o kluczowym znaczeniu w pracy. Miałem kilka warunków otwartych na inną maszynę. Musiałem usunąć zbędne rzeczy z katalogu. Cóż, zgubiłem się w moich warunkach i przypadkowo się zakochałem . w moim lokalnym katalogu, ale na niewłaściwym hoście (zły termin) !!. Wykonałem polecenie w / var / lib / mysql zamiast / tmp na serwerze aplikacji (inny termin). Nie trzeba dodawać, że wyczyściłem produkcyjną bazę danych. Na szczęście mieliśmy ciepły tryb gotowości, do którego się przełączyliśmy, podczas gdy ja i współpracownik przebudowaliśmy podstawowy system z kopii zapasowych i trybu gotowości. Zajęło to około 18 godzin.
Łagodzenie: bardziej uważaj na to, w których oknach wykonuję polecenia przed ich wykonaniem.
źródło
krótka wersja
źródło
kill -9 -1
#!/bin/bash
i myślę, że to wygrałoby golfa kodowego na najkrótszy widelec w bash.Kiedyś chciałem usunąć kilka plików z katalogu.
Komputer powiedział wtedy: „Jesteś pewien? [T / N]„ Myślałem „OCZYWIŚCIE, jestem pewien, że nie wpisałbym tego cholernego polecenia w przeciwnym razie! Sheesh głupie komputery narzekają …”
Um ... WTF? Czy właśnie usunąłem katalog Windows? ....
W tamtych czasach małych dysków twardych wiedziałem do czego służy każdy plik c: \ windows i jak się nazywał, ale nawet po usunięciu wszystkiego system nigdy nie był taki sam. Zyskałem trochę szacunku dla monitu „jesteś pewien”. Troszeczkę.
źródło
Myślę, że najbardziej głupią rzeczą, jaką kiedykolwiek zrobiłem, było usunięcie domyślnej trasy na zewnętrznym klastrze zapory ogniowej - podczas gdy vpn'ed na mój pulpit ponad sto mil dalej.
Na szczęście było to w okresie wyznaczonym jako planowane przestoje (na wszelki wypadek), ale nie zaoszczędziło mi to 200-milowej podróży w obie strony, aby ponownie skonfigurować zaporę na miejscu. Nie pomogło też to, że na czas mojej podróży i późniejszej naprawy usunęliśmy nasze systemy produkcji z dostępem do Internetu.
Wszyscy znamy definicję nanosekundy. Sekunda jest jeszcze mniejsza i to czas między uderzeniem „wejdź” a uświadomieniem sobie twojego błędu.
źródło
Pierwszy z dwóch ...
Na komputerze z systemem Solaris mieliśmy kopię zapasową tar komputera AIX.
Jeden z programistów napisał:
Oczywiście ścieżki w podatku były absolutne i ostatecznie stworzyliśmy nową dystrybucję unixa ... Solarix ... Jedynym problemem z dystrybucją jest to, że się nie uruchomiła :(
źródło
Opowiedziana mi historia:
Inny oddział zadzwonił, ponieważ w ich lokalnej centrali PBX wystąpiły problemy. Po pewnym dochodzeniu dowiedzieliśmy się, że zaktualizowali swój serwer, ale nie konfigurację Asterisk. Tak więc administrator postanowił poinstruować pracownika oddziału, aby powtórzył konfigurację.
źródło
zamiast
Na szczęście mi się to nie zdarzyło ;-)
źródło
Moim zamiarem było źródło .bashrc, ale byłem zbyt pochopny z tab-complete ...
źródło
Coś w tym stylu:
Miałem na myśli sda4. Wyczyściłem cały dysk, nie tylko partycję :-(
źródło
XCOPY
jest potężną bestią - bezlitosną w wykonywaniu i opóźnioną przez fakt, że jej argumenty wiersza poleceń są odwrotne niż argumenty WindowCOPY
i UNIXcp
.Kilka dni temu przypadkowo napisałem:
XCOPY
był na tyle miły, że nadpisał mójsrc
katalog ... niczym! I nie zawracało sobie głowy umieszczeniem starych plików w Koszu.Aha, i okazuje się, że
XCOPY
tak naprawdę zastępuje te same sektory na dysku zamiast przydzielania nowych. Wypróbowałem 3 programy do odzyskiwania dysku i najlepszy z nich mógł odzyskać tylko 3 z 10 utraconych plików. Oczywiście te 3 pliki były tylkovshost.exe
i ich kumplami. Puchnąć!źródło
Miałem problemy z siecią (na zdalnym komputerze) i chciałem ponownie uruchomić interfejs
W dzisiejszych czasach upewniam się, że ktoś jest blisko maszyny przed wypróbowaniem takich rzeczy (iptables jest również dobrym kandydatem). A kiedy nikogo tam nie było, kiedyś pisałem
do innego (ekranowego) terminala, aby zrestartował się, gdybym nie mógł ctrl + c polecenia w ciągu 10 minut.
Nauczyłem się również z tego błędu (ctrl + c sen spowoduje uruchomienie ponownego uruchomienia) i teraz używam
co pozwoli mi na ctrl + c to.
źródło
shutdown -r +5
zrestartuje system za 5 minut, chyba że na przykład zabijeszshutdown
proceskillall shutdown
.Ups, jestem po zewnętrznej stronie eth0. Serwer znajduje się po drugiej stronie świata, w zamkniętym pokoju. Bez dostępu do sieci w celu zalogowania się lub ponownego uruchomienia. Bzdury.
źródło
Darmowy plik cookie dla każdego, kto może mi powiedzieć, dlaczego byłem idiotą, próbując w ten sposób usunąć wszystkie ukryte pliki i katalogi:
rm -rf. *
źródło
..
dowiązania twardegoPodczas czyszczenia mojego folderu domowego na produkcyjnym serwerze internetowym zapomniałem, że dowiązałem katalog główny serwera do miejsca w moim folderze domowym. Nie zastanawiając się, uruchomiłem rm -rf w tym folderze, a następnie wiem, że ludzie dzwonią, że strona internetowa nie działa!
OOPS!
źródło
Kiedyś porównywałem dane w dwóch folderach i uruchomiłem rsync z opcją -d (usuwaj pliki na miejscu docelowym, które nie są w źródle). A potem zmieniłem źródło i cel, kiedy uruchomiłem rsync. To usunęło wszystkie nowe pliki, które chciałem wykonać kopię zapasową. Teraz nauczyłem się uruchamiania rsync z -n (suchobieg).
Nie miałem kopii zapasowej.
źródło
Dawno, dawno temu (prawdopodobnie System III, ale to było dawno temu), możliwe było utworzenie pliku o nazwie
*
przy użyciu odpowiedniego cytowania powłoki. Kiedy znalazłem taki w moim katalogu domowym, wpisałemrm *
i trzymałem palec na klawiszu powrotu, gdy coś mnie zawahało i pomyślałem o tym ...Tworzenie takiego pliku dla innych użytkowników było powszechnym żartem.
Jeśli plik znajduje się w katalogu, trudno jest go zminimalizować. Odruch, aby po prostu wpisać swoją nazwę dokładnie tak, jak
ls
właśnie wyświetlono, jest dość silny.Innym (mniej szkodliwym) dowcipem było nazywanie plików ze spacją (lub tylko spacją), które były trudniejsze do usunięcia ...
źródło
Z powodu złego doświadczenia z ogólną niestabilnością JBoss po restarcie, lubię wyczyścić działające pliki JBoss przed restartem. Normalnie zrobiłbym:
Aby uchronić się przed wpisaniem któregokolwiek z wielu katastrofalnych błędów, takich jak:
Wykonuję ostatnie polecenie:
Ponieważ użytkownik JBoss miałby trudności z usunięciem krytycznych plików, które do niego nie należą.
Nigdy nie popełniłem tego błędu, ale jestem bezpieczny w tym przypadku.
źródło